适配器模式:
interface Target{
public void request();
}
class Adapter1{
public void specificRequest(){
system.out.println(" 这个是个特殊方法,要被包装起来“);
}
}
1、对象适配器
class Adapter implements Target{
private Adapter1 adapter1;
public Adapter(Adapter1 adapter1){
this.adapter1 = adapter1;
public void request(){
this.adapter1.specificRequest(); // 这里是是用委托的方式完成特殊功能。
}
}
}
2、类适配器
class Adapter extends Adapter1 implements Target{
public void request(){
super.specificRequest();
}
}
装饰模式:
装饰模式和适配器模式的类比:
从定义上看装饰模式是对核心对象或者功能的扩展,适配器模式是把对象或者功能放到一个新对象中引用。举个例子,现在书城卖道德经的书,有线装版,有精装版,有日文版,有英文版,其中线装版和精装版就是装饰模式,日文版和英文版就是适配器模式,各种版本都是为迎合不同消费者的不同需求。为什么呢?因为线装版和精装版的道德经虽然包装不同,但内容相同,日文版和英文版就不同,这两个版本的内容就可能和原版的不同,文化差异嘛,翻译的内容虽来自道德经,但根据不同国家的文化,思维逻辑什么的就可能改变一些想法。