設(shè)計模式(九):門面/外觀模式

門面模式(Facade)又稱外觀模式

為客戶端提供了一個客戶端可以訪問系統(tǒng)的接口。降低訪問復(fù)雜系統(tǒng)的內(nèi)部子系統(tǒng)時的復(fù)雜度,簡化客戶端與之的接口。

何時使用: 1、客戶端不需要知道系統(tǒng)內(nèi)部的復(fù)雜聯(lián)系,整個系統(tǒng)只需提供一個"接待員"即可。 2、定義系統(tǒng)的入口。

應(yīng)用實例: 1、去醫(yī)院看病,可能要去掛號、門診、劃價、取藥,讓患者或患者家屬覺得很復(fù)雜,如果有提供接待人員,只讓接待人員來處理,就很方便。

門面模式與建造者模式類似,不過Builder 傾向于解決創(chuàng)建復(fù)雜的對象的問題,對象有復(fù)雜的內(nèi)部結(jié)構(gòu),我們可以根據(jù)變化靈活的組合。而Facade 傾向于解決內(nèi)部系統(tǒng)各個類之間復(fù)雜邏輯的問題,降低客戶端使用系統(tǒng)的難度。

示例代碼:

//系統(tǒng)角色類
class Register {
    public static function register() {    
    }
}
class Pay {
    public static function pay() {    
    }
}
class Medication {
    public static function getMedication() {    
    }
}
//門面角色類
class Facade {
    public function buyMedition() {
          Register::register();
          Pay::pay() ;
          Medication::getMedication();
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容