簡介
将一個接口轉換為用戶端或伺服器端所期待的接口,進而使兩個接口不相容的類可以在一起工作,
進階的接口轉換表現形式
。
代碼
- 三方接口
public interface OriginalLogger {
void d(int priority,String message,Object ... obj);
}
- 三方接口實作類
public class OriginalLoggerImpl implements OriginalLogger {
@Override
public void d(int priority, String message, Object... obj) {
System.out.println(String.format("OriginalLoggerImpl 日志列印記錄:%s",message));
}
}
-
目标接口
即我們要将三方接口轉換為我們即将使用的目标接口
public interface NowLogFactory {
void debug(Integer tag,String message);
}
-
擴充卡
要實作目标接口,建立三方接口實作類對象
public class NowLogFactoryimpl implements NowLogFactory {
private OriginalLogger originalLogger;
public NowLogFactoryimpl(OriginalLogger originalLogger){
this.originalLogger=originalLogger;
}
@Override
public void debug(Integer tag, String message) {
originalLogger.d(1,message);
}
}
- 測試類
public class PatternTest {
public static void main(String[] args) {
NowLogFactory factory=new NowLogFactoryimpl(new OriginalLoggerImpl());
factory.debug(1,"改變後的日志列印");
}
}
總結
此設計模式較為簡單,使用面積較廣,常見的: 比如日志門面技術,slfj4j;
優點:可以進行代碼整合,用一套接口,底層可以用不同的實作類;