逛图书馆逛回来一本《图解设计模式》,像我这种其实并不爱看纸质书的人,也能看得进去,说明讲的还是很通俗易懂的。
这个坑中,聊一聊我对23种设计模式的个人理解。
适配器模式有两种,一是给类做代理(继承),二是给实例做代理(委托)。
继承式Adapter

继承式中,适配器本身是被适配类的子类,实现来自接口的方法,将来自继承的方法进行包装。
public class UseClass {
void methodB() {
System.out.println("被适配的方法methodB");
}
}
--------------------------------
public interface Adapter {
void methodA();
}
public class AdapterImpl extends UseClass implements Adapter{
@Override
public void methodA() {
methodB();
}
}
--------------------------------
public class Main {
public static void main(String[] args) {
Adapter adapter = new AdapterImpl();
adapter.methodA();
}
}
委托式Adapter

委托式中,不再继承于被适配的类,包装自身方法。
而是接收被适配类的实例,调用其被适配方法。
网友评论