這篇文章主要介紹了JAVA外觀模式怎么實現(xiàn)的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇JAVA外觀模式怎么實現(xiàn)文章都會有所收獲,下面我們一起來看看吧。
創(chuàng)新互聯(lián)是專業(yè)的陳巴爾虎網(wǎng)站建設(shè)公司,陳巴爾虎接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行陳巴爾虎網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
外觀(Facade)模式又叫作門面模式,是一種通過為多個復(fù)雜的子系統(tǒng)提供一個一致的接口,而使這些子系統(tǒng)更加容易被訪問的模式。該模式對外有一個統(tǒng)一接口,外部應(yīng)用程序不用關(guān)心內(nèi)部子系統(tǒng)的具體細(xì)節(jié),這樣會大大降低應(yīng)用程序的復(fù)雜度,提高了程序的可維護(hù)性。
1、降低了子系統(tǒng)與客戶端之間的耦合度,使得子系統(tǒng)的變化不會影響調(diào)用它的客戶類。
2、對客戶屏蔽了子系統(tǒng)組件,減少了客戶處理的對象數(shù)目,并使得子系統(tǒng)使用起來更加容易。
3、降低了大型軟件系統(tǒng)中的編譯依賴性,簡化了系統(tǒng)在不同平臺之間的移植過程,因為編譯一個子系統(tǒng)不會影響其他的子系統(tǒng),也不會影響外觀對象。
1、不能很好地限制客戶使用子系統(tǒng)類,很容易帶來未知風(fēng)險。
2、增加新的子系統(tǒng)可能需要修改外觀類或客戶端的源代碼,違背了“開閉原則”。
外觀(Facade)模式的結(jié)構(gòu)比較簡單,主要是定義了一個高層接口。它包含了對各個子系統(tǒng)的引用,客戶端可以通過它訪問各個子系統(tǒng)的功能。現(xiàn)在來分析其基本結(jié)構(gòu)和實現(xiàn)方法。
案例:長虹劍、冰魄劍、紫云劍三劍合璧。
外觀(Facade)角色:三劍合璧
子系統(tǒng)(Sub System)角色:長虹劍、冰魄劍、紫云劍
客戶(Client)角色:測試類,調(diào)用三劍合璧
長虹劍類聲明一個調(diào)用長虹劍的方法
public class ChangHong { public void show(){ System.out.println("長虹劍"); }}
冰魄劍類聲明一個調(diào)用冰魄劍的方法
public class BingPo { public void show(){ System.out.println("冰魄劍"); }}
紫云劍類聲明一個調(diào)用紫云劍的方法
public class ZiYun { public void show(){ System.out.println("紫云劍"); }}
聲明三個劍對象,并且聲明一個方法調(diào)用三劍的方法。
public class San { private ChangHong changHong =new ChangHong(); private BingPo bingPo=new BingPo(); private ZiYun ziYun=new ZiYun(); public void shows(){ changHong.show(); bingPo.show(); ziYun.show(); System.out.println("三劍合璧"); }}
new一個三劍合璧的對象,調(diào)用三劍合璧的方法
public class Demo { public static void main(String[] args) { San san=new San(); san.shows(); }}
關(guān)于“JAVA外觀模式怎么實現(xiàn)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“JAVA外觀模式怎么實現(xiàn)”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。