Java設計模式之外觀模式示例
1.什麼是外觀模式
當一個使用者類需要和某個系統中的多個子系統打交道時,為了避免該類和子系統中的類產生過多的依賴關係,可以採用外觀模式。外觀模式,為這些子系統提供一個外觀類進行功能的封裝,外觀類負責和子系統中的類打交道,使用者類和外觀類打交道,簡化了使用者類和子系統進行互動和依賴。
2.如何實現
1)子系統,是若干個類的集合,這些類協同為使用者提供所需的功能,子系統中的任何類都不包含外觀類的引用
2)外觀類(Facade),該類包含子系統中全部或部分類的例項引用。外觀類可以替代子系統中的類和使用者打打交道。
3.程式碼實現
以一個廣告系統做案例,該系統包含CheckWord,Charge,TypeSeting三個子類。
AdFacade是這個子系的外觀類,負責和使用者類進行互動,並呼叫子系統中的功能實現使用者需求。
1)子系統CheckWord
/** * 子系統1 * 廣告檢查系統 * 完成廣告字數計算 */ public class CheckWord { int amount; String ad; public CheckWord (String ad){ this.ad = ad; } /** * 計算廣告字數,按字數收費 * @return */ public int setAmout( ){ System.out.println("計算廣告字數"); amount = ad.length(); return amount; } }
2)Charge
/** * 子系統2 * 計算廣告價格 */ public class Charge { CheckWord word; public int price; public Charge(CheckWord word){ this.word = word; } public int giveCharge( ){ //計算廣告價格 System.out.println("計算價格"); price = word.amount*100; return price; } }
3)TypeSetting
/** * 子系統3 * 廣告排版 */ public class TypeSetting { private String ad; public TypeSetting(String ad){ this.ad = ad; } public void typeSetting(){ System.out.println("廣告排版"); } }
4)外觀類
/** * 外觀類 * 包含子系統中全部或部分類。 * 這個類替代子系統和使用者類打交道, * 所有使用者想要完成的功能由這個類進行呼叫, * 避免了使用者類和子系統過多的依賴。 */ public class AdFacade { private CheckWord checkWord; private Charge charge; private TypeSetting typeSetting; public AdFacade(String ad){ this.checkWord = new CheckWord(ad); this.charge = new Charge(checkWord); this.typeSetting = new TypeSetting(ad); } /** * 完成使用者釋出廣告的任務 */ public void finishAdTask(){ checkWord.setAmout(); charge.giveCharge(); typeSetting.typeSetting(); } }
5)測試類
public class Main { public static void main(String args[]){ String ad ="hello world"; AdFacade adFacade = new AdFacade(ad); adFacade.finishAdTask(); } } public class Main { public static void main(String args[]){ String ad ="hello world"; AdFacade adFacade = new AdFacade(ad); adFacade.finishAdTask(); } }
到此這篇關於Java設計模式之外觀模式示例詳解的文章就介紹到這了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2913386/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java設計模式之外觀模式Java設計模式
- Java 設計模式之外觀模式的作用Java設計模式
- 設計模式之外觀模式設計模式
- PHP設計模式之外觀模式PHP設計模式
- go設計模式之外觀模式Go設計模式
- 設計模式(十五)----結構型模式之外觀模式設計模式
- java設計模式-外觀模式Java設計模式
- Java設計模式之策略模式示例Java設計模式
- Java設計模式-觀察者模式Java設計模式
- 設計模式系列之外觀模式(Facade Pattern)——提供統一的入口設計模式
- Java 設計模式之《觀察者模式》Java設計模式
- Java設計模式之(十二)——觀察者模式Java設計模式
- 淺識JAVA設計模式——觀察者模式Java設計模式
- Java常用設計模式之觀察者模式Java設計模式
- java23種設計模式-門面模式(外觀模式)Java設計模式
- 設計模式-外觀模式設計模式
- Java中的設計模式(一):觀察者模式Java設計模式
- 17.java設計模式之觀察者模式Java設計模式
- 折騰Java設計模式之觀察者模式Java設計模式
- 【設計模式】觀察者模式設計模式
- 設計模式(十)外觀模式設計模式
- 設計模式----觀察者模式設計模式
- 設計模式——觀察者模式設計模式
- Python設計模式-外觀模式Python設計模式
- 設計模式 —— 觀察者模式設計模式
- 設計模式(觀察者模式)設計模式
- Java設計模式——觀察者模式的靈活應用Java設計模式
- Java23種設計模式【22】----》觀察者模式(Observer)Java設計模式Server
- 設計模式之【門面模式(外觀模式)】設計模式
- 軟體設計模式————(外觀模式)設計模式
- 設計模式(9) 觀察者模式設計模式
- 設計模式之【觀察者模式】設計模式
- 設計模式-觀察者模式上設計模式
- 設計模式-觀察者模式下設計模式
- 《Head First 設計模式》:外觀模式設計模式
- 設計模式之觀察者模式設計模式
- 設計模式之-觀察者模式設計模式
- 設計模式 #6 (觀察者模式)設計模式