外觀模式

外觀模式

定義

外觀模式提供了一個統一的接口,用來訪問子系統的一羣接口。外觀定義了一個高層接口,讓子系統更容易使用。
這樣我們可以避免和子系統之間的緊耦合。
在這裏插入圖片描述

最少知識原則

只和你的密友談話。
當你正在設計一個系統,不管是任何對象,你都要注意它所交互的類有哪些,並注意它和這些類是如何交互的。
這個原則我們可以提供了一些方針,就任何對象而言,在該對象的方法內,我們只應該調用屬於以下範圍的方法:

  1. 該對象本身
  2. 被當做方法的參數或者傳遞進來的對象
  3. 此方法所創建或實例化的任何對象

以上3項告訴我們,如果某對象是調用其他的方法的返回結果,不要調用該對象的方法。

  1. 對象的任何組件

把“組件”想象成是被實例變量所引用的任何對象,換句話說,把這想象成是“有一個”(HAS-A)關係。

示例代碼

public class Car {
    // 這是類的一個組件,我們能調用它的方法
    Engine engine;    

    public Car(Engine engine) {
        this.engine = engine;
    }

   // 方法參數傳入Key對象,key對象方法可以調用
    public void start(Key key) {
		// 這裏創建了一個新的對象,它的方法可以調用
        Doors doors = new Doors();
        
        boolean anthorized = key.turns();   //[2]方法參數傳入對象
        if (anthorized) {
            engine.start();  //[4]對象組件
            updateDisplay();  //[1]該對象本身
            doors.lock();  //[3]方法內實例的對象
        }
    }

    //更新顯示
    public void updateDisplay() {
        // TODO Auto-generated method stub

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