設計模式(9) 外觀模式

2022-10-11 08:39:10 字數 1225 閱讀 5644

外觀模式 facade (結構型模式)

1.概述

外觀模式:為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。

外觀模式是迪公尺特法則的一種具體實現,通過引入乙個新的外觀角色可以降低原有系統的複雜度,同時降低客戶類與子系統的耦合度。

例如:你請朋友吃飯,你可能需要買菜,洗菜,切菜,做菜等等這些模組,現在你去餐館去吃,這些步驟他們幫你搞定,餐館的服務就相當於乙個外觀類。

2.結構圖

現在需要讀入乙個檔案,對檔案的資料加密後,輸出加密後的檔案

1

public

class

filereader

67 }

1

public

class

fileprocess

67 }

1

public

class

filewriter

67 }

1/*2

* 外觀類3*/

4public

class

facade

1516

public

void

fileencrypt()

2122 }

1

public

class

test

78 }

假如不使用外觀類的話,客戶類需要3個子系統的例項化物件,使得類與類之間的耦合性增加,引入外觀模式則降低了耦合性,如果需要增加新的子系統或者移除子系統都非常方便,客戶類無須進行修改(或者極少的修改),只需要在外觀類中增加或移除對子系統的引用即可。

絕大多數b/s系統都有乙個首頁或者導航頁面,大部分c/s系統都提供了選單或者工具欄,在這裡,首頁和導航頁面就是b/s系統的外觀角色,而選單和工具欄就是c/s系統的外觀角色,通過它們使用者可以快速訪問子系統,降低了系統的複雜程度。所有涉及到與多個業務物件互動的場景都可以考慮使用外觀模式進行重構。

設計模式9 外觀模式

將類與類之家的依賴關係放在乙個facade類中,降低了類類之間的耦合度,該模式中沒有涉及到介面 實現類1 public class cpu public void shutdown 實現類2 public class memory public void shutdown 實現類3 public c...

設計模式 外觀模式(9)

一 定義 外觀模式為子系統中的一組介面提供乙個一致的介面,其實就是提供乙個高層介面,方便別人的呼叫。二 框架運用 spring jdbc中的外觀模式 org.springframework.jdbc.support.jdbcutils mybatis中的外觀模式 org.apache.ibatis....

設計模式 9 外觀模式

比如開一台裝置需要按順序給顯示器通電 亮燈 發出聲音。在使用外觀模式前,客戶端直接呼叫通電 亮燈 發出聲音。在這樣的情況下,後續如果流程發生變化,比如不需要發出聲音或聲音需要在亮燈之前,就需要修改客戶端的 如果客戶端多處呼叫,就需要修改多處。public class subsystemone pub...