java設計模式之結構模型模式

這章開始,我將講下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();
	}

}

裝飾模式

實現相同的接口,對不同的實現進行包裝,如jdk的io流

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();
	}
}

外觀模式

這個類似於javaweb 開發,使用spring mvc   conrtoll中 多個service操作來組成一個 方法


橋接模式

jdbc的實現,Driver  DriverManager的實現,具體的參見java.sql包下面的實現

組合模式

類似於TreeMap中 Entry的實現,自己本身是整體的一部分


享元模式

所謂的享元模式,就是線程池,通過線程池來管理和釋放連接


適配器模式將某個類的接口轉換成客戶端期望的另一個接口表示,目的是消除由於接口不匹配所造成的類的兼容性問題。主要分爲三類:類的適配器模式、對象的適配器模式、接口的適配器模式。首先,我們來看看


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