23種設計模式(2):適配器模式

適配器模式就是將原來的方法進行包裝,轉化爲新的方法,UML圖如下:



/*Banner類*/
public class Banner{
	private String string;
public Banner(String string){
	this.string = string;
	}
public void showWithParen(){
	System.out.println("("+string+")");
}
public void showWithAster(){
	System.out.println("*"+string+"*");
}
}
/*Print接口*/
public interface Print{
public abstract void printWeak();
public abstract void printStrong();
}
/*適配器*/
public class PrintBanner extends Banner implements Print{
public PrintBanner(String string){
	super(string);
}
public void printWeak(){
showWithParen();
}
public void printStrong(){
showWithAster();
}
}

public class Main(){
public static void main(String[] args){
	Print p = new PrintBanner("Hello");
	p.printWeak();
	p.printStrong();
}
}
以上是繼承方式來實現適配器,用戶完全看不到被裝配的類Banner;也就不知道其內部的實現。

下面是使用委託方式實現適配器:



/*適配器*/
public class PrintBanner implements Print{
	private Banner banner;
public PrintBanner(String string){
	this.banner = new Banner(string);
}
public void printWeak(){
	showWithParen();
}
public void printStrong(){
	showWithAster();
}
}
兩種方式區別:繼承方式是通過繼承來調用父類方法實現轉化。委託方式是通過內部的一個實例對象來是實現轉化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章