定義
外觀模式(facade pattern):為子系統中的一組介面提供乙個統一的入口。外觀模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。
結構facade(外觀角色):在客戶端可以呼叫它的方法,在外觀角色中可以知道相關(乙個或多個)子系統的功能和職責;在正常情況下,它將所有從客戶端發來的請求委派到相應的子系統,傳遞給相應的子系統物件處理。
subsystem(子系統角色):在軟體系統中可以有乙個或多個子系統角色,每乙個子系統可以不是乙個單獨的類,而是乙個類的集合,它實現子系統的功能;每乙個子系統都可以被客戶端直接呼叫,或者被外觀角色呼叫,它處理由外觀類傳過來的請求;子系統並不知道外觀的存在。對於子系統而言,外觀角色僅僅是另外乙個客戶端而已。 **
子系統
public class subsystema
}public class subsystemb
}public class subsystemc
}
facade
public class facade
}
test
public class test
}
抽象外觀類
在標準的外觀模式結構中,如果需要增加、刪除或更換與外觀類互動的子系統,必須修改外觀類或客戶端的原始碼,這將違背開閉原則。這裡考慮使用抽象外觀類。
public abstract class abstractfacade
public class concretefacade extends abstractfacade
}
優/缺點與適用環境
優點
缺點
適用環境
11 門面模式 外觀模式
登入功能 class loginfunction package com.study.facade pattern 市場功能 class marketfunction package com.study.facade pattern 支付功能 class payfunction package co...
設計模式筆記 11 外觀模式(結構型)
為子系統中的一組介面提供乙個一致的介面,fa ade模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。先來看個小例子,假設我們需要開發乙個坦克模擬系統用於模擬坦克車在各種作戰環境中的行為,其中坦克系統由引擎 控制器 車輪 車身等各子系統構成。就會有下面這些類的產生 public class...
設計模式11 結構型模式之外觀模式
定義 外觀模式 fa ade pattern 為子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。型別 結構型模式。適用性 當子系統非常複雜時,使得客戶呼叫非常麻煩,不便於使用。這個時候就可以使用外觀模式將這些子系統封裝起來,提供乙個統一而簡單介面...