這章開始,我將講下7種結構型模式:適配器模式、裝飾模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。其中對象的適配器模式是各種模式的起源,我們看下面的圖
建議大家跟着畫畫uml圖,方便大家理解
適配器模式
適配器模式將某個類的接口轉換成客戶端期望的另一個接口表示,目的是消除由於接口不匹配所造成的類的兼容性問題。主要分爲三類:類的適配器模式、對象的適配器模式、接口的適配器模式。首先,我們來看看
public interface Source {
public void sayHi();
}
public class Target{
public void sayHello() {
}
}
public class Apadter extends Target implements Source{
@Override
public void sayHi() {
}
@Override
public void sayHello() {
super.sayHello();
}
}
裝飾模式
public interface Source {
public void sayHi();
}
public class SourceImpl implements Source {
@Override
public void sayHi() {
}
}
public class Decorator implements Source{
Source source;
public Decorator(Source s){
this.source=s;
}
@Override
public void sayHi() {
source.sayHi();
}
}
代理模式
public class Proxy implements Source {
Source source;
public Proxy() {
try {
source=Source.class.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
@Override
public void sayHi() {
source.sayHi();
}
}
外觀模式
橋接模式
組合模式
享元模式
適配器模式將某個類的接口轉換成客戶端期望的另一個接口表示,目的是消除由於接口不匹配所造成的類的兼容性問題。主要分爲三類:類的適配器模式、對象的適配器模式、接口的適配器模式。首先,我們來看看