【デザインパターン】【GoF】【Java】Adapterパターン

サンプル

委譲を利用した Adapter パターン

http://blogs.yahoo.co.jp/dk521123/33200578.html
で利用したjava.util.loggingを題材として使う

ILogger.java

public interface ILogger {
   public void writeError(String value);
   public void writeWarning(String value);
   public void writeInfo(String value);
}

LogAdapter.java

import java.util.logging.Logger;

public class LogAdapter implements ILogger {
   private final Logger logger =
         Logger.getLogger("LogAdapter");

   public void writeError(String value) {
      this.logger.severe(value);
   }

   public void writeWarning(String value) {
      this.logger.warning(value);
   }

   public void writeInfo(String value) {
      this.logger.info(value);
   }
}

Main.java

* 利用者
public class Main {
   public static void main(String[] args) {
      LogAdapter logAdapter = new LogAdapter();
      logAdapter.writeError("Error");
      logAdapter.writeWarning("Warning");
      logAdapter.writeInfo("Info");
   }
}

出力結果

4 30, 2014 10:55:25 午後 com.dkcom.adapter.LogAdapter writeError
重大: Error
4 30, 2014 10:55:25 午後 com.dkcom.adapter.LogAdapter writeWarning
警告: Warning
4 30, 2014 10:55:25 午後 com.dkcom.adapter.LogAdapter writeInfo
情報: Info