DEBUG - 天道酬勤
2種模式嫁接的方式不同。
類適配器模式采用的是多重繼承的方式
class Adapter extends Adaptee implements Target{
request(){this.SpecificRequest();}
....
}
對象適配器采用的是包含的方式
class Adapter implements Taget{
Adaptee adaptee;
request(){adaptee.SpecificRequest();}
...
兩者的區別我認為有以下幾點
1.類適配器模式需要創建自身來創建一個Adaptee,
對象適配器模式可以直接使用一個已有的Adaptee的實例來轉換接口。
2. 類適配器繼承了Adaptee,所以可以通過覆寫來擴展SpecificRequest()
對象適配器和Adaptee是包含關系不能擴展;(其實也可以擴展的見下面)
3.類適配器模式因為是繼承所以相對靜態,而對象適配器模式是包含是組合相對靈活(可以通過寫adaptee子類擴展功能)
Powered by: BlogJava Copyright © HUIKK