設計模式系列之五:適配器模式

適配器模式屬於結構型設計模式,主要應用於升級或改造舊系統時。所謂適配器按生活中的說法就是一個轉接口,將原本不直接匹配的兩個產品組合起來,類似於用iPhone手機充電器給android手機充電需要一個轉換頭,生活中這種例子隨處可見。

適配器模式主要有三個組成部分,目標接口(Target),適配器(Adapter),適配對象(Adaptee)。

package com.panda.adpter;

public interface Target {
	void targ();
}

package com.panda.adpter;

public class Adaptee {
	public void ada(){
		System.out.println("適配對象方法!");
	}
}

package com.panda.adpter;

public class Adapter extends Adaptee implements Target {

	@Override
	public void targ() {
		// TODO Auto-generated method stub
		super.ada();
	}
	
}

package com.panda.adpter;


public class Client {
	public void test(Target t){
		t.targ();
	}
	public static void main(String[] args) {
		Client c = new Client();
//		Adapter a = new Adapter();
		Target  t = new Adapter();
		c.test(t);
	}
}

以上所採用的是類適配器,直接通過繼承來實現,由於繼承只能是單個繼承,不夠靈活,所以這種方法一般不如使用對象適配器。

package com.panda.adpter;

public class Adapter  implements Target {
	private Adaptee adaptee;
	
	public Adapter(Adaptee adaptee) {
		super();
		this.adaptee = adaptee;
	}

	@Override
	public void targ() {
		// TODO Auto-generated method stub
		adaptee.ada();
	}
	
}

package com.panda.adpter;


public class Client {
	public void test(Target t){
		t.targ();
	}
	public static void main(String[] args) {
		Client c = new Client();
		Adaptee a = new Adaptee();
		Target  t = new Adapter(a);
		c.test(t);
	}
}

得到的結果都是一樣的


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