外觀模式是什么?
????它是一個(gè)系統(tǒng)對外提供訪問的一個(gè)統(tǒng)一的入口(外觀類),該入口會(huì)整體糅合完成你所需要的功能或者業(yè)務(wù)勺远。
????這個(gè)入口隱藏了子系統(tǒng)完成所需要功能的復(fù)雜性署尤,可以使得子系統(tǒng)對外來說更加容易調(diào)用耙替。
主要解決的是:
? ? 降低訪問內(nèi)部系統(tǒng)的復(fù)雜聯(lián)系,簡化客戶端調(diào)用系統(tǒng)的接口曹体。
客戶端調(diào)用方面:
????不需要知道系統(tǒng)內(nèi)部有多么復(fù)雜俗扇,整個(gè)系統(tǒng)只需要提供一個(gè)解決問題的入口就行了。
????所以子系統(tǒng)和客戶端是解耦的箕别,但是相對入口的外觀類來說切不是铜幽,因?yàn)橛兴P(guān)聯(lián)滞谢。
那么外觀模式的使用場景:
第一為復(fù)雜的模塊或子系統(tǒng)提供外界訪問模塊。
第二子系統(tǒng)相對獨(dú)立除抛。
預(yù)防低水平開發(fā)人員帶來的風(fēng)險(xiǎn)狮杨。
好處:
????對客戶屏蔽子系統(tǒng)組件,減少了客戶處理的對象數(shù)目并使得子系統(tǒng)使用起來更加容易
????只是提供了一個(gè)訪問子系統(tǒng)的統(tǒng)一入口到忽,并不影響用戶直接使用子系統(tǒng)類橄教。
缺點(diǎn):
? ? 1. 不能很好的擴(kuò)展程序的功能,如果要擴(kuò)展的話就得修改外觀類代碼
????2. 不能很好的限制客戶端的使用子系統(tǒng)功能喘漏,缺少程序可變性和靈活性
一般情況客戶端調(diào)用的話是這樣的:
外觀模式的話是糅合功能护蝶,只提供一個(gè)入口