設計模式:外觀模式

一、引

這次要講的這個模式其實在我們日常編寫代碼的過程中非常常見,在面向對象編程中,我們幾乎無時無刻不在用它,它就是外觀模式。在進入講解之前,我們先來了解一個設計原則,這就是迪米特法則。

迪米特法則,如果兩個類不必彼此直接通信,那麼這兩個類就不應當發生直接的相互作用,如果其中的一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。迪米特法則其實和前面提到的依賴倒置原則有些類似,都是強調類之間的鬆耦合,面向接口設計。

二、理解

外觀模式,爲子系統中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這個子系統更加容易使用。在我們設計代碼之初,就應該有意識的將不同的兩個層分開,在代碼開發階段,增加“外觀”可以提供一個簡單的接口,減少他們之間的依賴,在維護過程中,爲新系統提供一個“外觀”,來提供設計粗糙或高度複雜的遺留代碼的比較清晰的簡單接口,讓新系統和外觀類對象交互,外觀類與遺留代碼交互所有複雜的工作。一下是外觀模式的結構圖

三、實現

public class SubSystemOne {
	public void MethodOne() {
		
	}
}

public class SubSystemTwo {
	public void MethodTwo() {
		
	}
}

public class SubSystemThree {
	public void MethodThree() {
		
	}
}

public class SubSystemFour {
	public void MethodFour() {
		
	}
}
public class Facade {
	SubSystemOne subSystemOne;
	SubSystemTwo subSystemTwo;
	SubSystemThree subSystemThree;
	SubSystemFour subSystemFour;
	
	public Facade() {
		subSystemOne = new SubSystemOne();
		subSystemTwo = new SubSystemTwo();
		subSystemThree = new SubSystemThree();
		subSystemFour = new SubSystemFour();
	}
	
	public void Method() {
		subSystemOne.MethodOne();
		subSystemTwo.MethodTwo();
		subSystemThree.MethodThree();
		subSystemFour.MethodFour();
	}
}
public class Main {

	public static void main(String[] args) {
		Facade facade = new Facade();
		facade.Method();

	}

}

 

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