外觀模式又稱為門面模式。其定義為:為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。此模式是一種通過為多個複雜的子系統提供乙個一致的介面,而使這些子系統更加容易被訪問的模式。該模式對外有乙個統一介面,外部應用程式不用關心內部子系統的具體的細節,這樣會大大降低應用程式的複雜度,提高了程式的可維護性。
外觀(facade)模式是「迪公尺特法則」的典型應用,它有以下主要優點。
外觀(facade)模式的主要缺點如下。
外觀(facade)模式的結構比較簡單,主要是定義了乙個高層介面。它包含了對各個子系統的引用,客戶端可以通過它訪問各個子系統的功能。現在來分析其基本結構和實現方法。
模式的結構
外觀(facade)模式包含以下主要角色。
外觀(facade)角色:為多個子系統對外提供乙個共同的介面。
子系統(sub system)角色:實現系統的部分功能,客戶可以通過外觀角色訪問它。
客戶(client)角色:通過乙個外觀角色訪問各個子系統的功能。
模式的實現
外觀類:
public class facade
/*** 為子系統1的方法提供了統一的方法
*/public void methodone()
/*** 為子系統2的方法提供了統一的方法
*/public void methodtwo()
}
子系統類:
public class subsystemone
public void methodtwo()
}public class subsystemtwo
public void methodtwo()
}
**比較簡單。在facade類中,定義了各個子系統的引用,並進行了例項化。並且定義了methodone方法和methodtwo方法,這兩個方法則呼叫了子系統的多個方法,分別為子系統提供了統一的對外的方法。外觀模式最顯著的特點就是,外觀類包含了其他類的引用,並在facade的方法中通過其子系統的引用呼叫了子系統的乙個或者多個方法。
測試類:
public class facadetest
}
測試結果:
子系統1:methodone方法。。。
子系統1:methodtwo方法。。。
-----------
子系統2:methodone方法。。。
子系統2:methodtwo方法。。。
process finished with exit code 0
第十二章 檔案
文字檔案 文字檔案是一種由若干字元構成的檔案,可以用文字編輯器進行閱讀或編輯。以txt py html等為字尾的檔案都是文字檔案。2.二進位制檔案 二進位制檔案一般是指不能用文字編輯器閱讀或編輯的檔案。以 mp4 png等為字尾的檔案都是二進位制檔案,如果想要開啟或修改這些檔案,必須通過特定軟體進行...
第十二章 dp
動態規劃策略 將原始問題拆分為多個子問題,將子問題結果記錄,方便復用子問題的解 遞迴 記憶化 遞推 是動態規劃的一體兩面,本質都是一樣的 遞推減少了呼叫次數,空間上還能優化,一般選擇遞推方式 遞迴 記憶化 int memo maxn 將o 2 n o n intfibonacci int n 遞推 ...
第十二章 異常
一 異常的概念 錯誤 編譯器 異常 執行期,程式沒有正常按照期望執行 異常產生時,在對應位置產生異常型別物件,程式 暫停 如果上下文有異常處理程式,對應處理 沒有則 異常向上傳播 報錯退出 異常向上傳播 如果異常在函式中產生,會傳播給函式的呼叫者 如果異常在模組的頂級位置,會傳播給引用該模組的模組 ...