本篇文章為大家帶來了關於java的相關知識,其中主要介紹了關於外觀模式的相關內容,外觀模式又叫作門面模式,是一種透過為多個複雜的子系統提供一個一致的接口,而使這些子系統更容易被存取的模式,希望對大家有幫助。
推薦學習:《java影片教學》
外觀(Facade)模式又叫作門面模式,是一種透過為多個複雜的子系統提供一個一致的接口,而使這些子系統更容易被存取的模式。此模式對外有一個統一接口,外部應用程式不用關心內部子系統的具體細節,這樣會大大降低應用程式的複雜度,提高了程式的可維護性。
1、降低了子系統與客戶端之間的耦合度,使得子系統的變化不會影響呼叫它的客戶類別。
2、對客戶封鎖了子系統元件,減少了客戶處理的物件數目,並使得子系統使用起來更加容易。
3、降低了大型軟體系統中的編譯依賴性,簡化了系統在不同平台之間的移植過程,因為編譯子系統不會影響其他的子系統,也不會影響外觀物件。
1、不能很好地限制客戶使用子系統類,很容易帶來未知風險。
2、增加新的子系統可能需要修改外觀類別或客戶端的原始程式碼,違反了「開閉原則」。
外觀(Facade)模式的結構比較簡單,主要是定義了一個高層介面。它包含了對各個子系統的引用,客戶端可以透過它存取各個子系統的功能。現在來分析其基本結構和實作方法。
案例: 長虹劍、冰魄劍、紫雲劍三劍合璧。
外觀(Facade)角色:三劍合璧
子系統(Sub System)角色:長虹劍、冰魄劍、紫雲劍
客戶(Client)角色:測試類,調用三劍合璧
長虹劍類別宣告一個呼叫長虹劍的方法
public class ChangHong { public void show(){ System.out.println("长虹剑"); }}
冰魄劍類別宣告一個呼叫冰魄劍的方法
public class BingPo { public void show(){ System.out.println("冰魄剑"); }}
#紫雲劍類別宣告一個呼叫紫雲劍的方法
public class ZiYun { public void show(){ System.out.println("紫云剑"); }}
聲明三個劍對象,並且宣告一個方法呼叫三劍的方法。
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一個三劍合璧的對象,呼叫三劍合璧的方法
public class Demo { public static void main(String[] args) { San san=new San(); san.shows(); }}
推薦學習:《java影片教學》
以上是JAVA外觀模式詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!