Java 設計模式之外觀模式的作用
導讀 | Java 設計模式——外觀模式:為子系統中的一組介面提供一個一致的介面,該模式定義了一個高層介面,這個介面使這個子系統更加容易使用。 |
外觀模式的作用
- 鬆散耦合,外觀模式鬆散了客戶端與子系統的耦合關係,讓子系統內部的模組能更容易擴充套件和維護。
- 簡單易用,外觀模式讓子系統更加易用,客戶端不再需要了解子系統內部的實現,也不需要跟眾多子系統內部的模組進行互動,只需要跟門面類互動就可以了。
- 更好的劃分訪問層次-透過合理使用 Facade,可以幫助我們更好地劃分訪問的層次。有些方法是對系統外的,有些方法是系統內部使用的。把需要暴露給外部的功能集中到門面中,這樣既方便客戶端使用,也很好地隱藏了內部的細節。
外觀模式的角色
- SubSystem: 子系統角色。表示一個系統的子系統或模組。
- Facade: 外觀角色,客戶端透過操作外觀角色從而達到控制子系統角色的目的。對於客戶端來說,外觀角色好比一道屏障,對客戶端遮蔽了子系統的具體實現。
例項探究
假設一臺電腦,它包含了 CPU(處理器),Memory(記憶體) ,Disk(硬碟)這幾個部件,若想要啟動電腦,則先後必須啟動 CPU、Memory、Disk。關閉也是如此。
但是實際上我們在電腦開/關機時根本不需要去操作這些元件,因為電腦已經幫我們都處理好了,並隱藏了這些東西。
這些元件好比子系統角色,而電腦就是一個外觀角色。
SubSystem 子系統角色
public class CPU { public void startup(){ System.out.println("cpu startup!"); } public void shutdown(){ System.out.println("cpu shutdown!"); } } public class Memory { public void startup(){ System.out.println("memory startup!"); } public void shutdown(){ System.out.println("memory shutdown!"); } } public class Disk { public void startup(){ System.out.println("disk startup!"); } public void shutdown(){ System.out.println("disk shutdown!"); } }
Facade 外觀角色
public class Computer { private CPU cpu; private Memory memory; private Disk disk; public Computer(){ cpu = new CPU(); memory = new Memory(); disk = new Disk(); } public void startup(){ System.out.println("start the computer!"); cpu.startup(); memory.startup(); disk.startup(); System.out.println("start computer finished!"); } public void shutdown(){ System.out.println("begin to close the computer!"); cpu.shutdown(); memory.shutdown(); disk.shutdown(); System.out.println("computer closed!"); } }
具體呼叫如下:
Computer computer = new Computer(); computer.startup(); computer.shutdown();
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2771406/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java設計模式之外觀模式Java設計模式
- Java設計模式之外觀模式示例Java設計模式
- 設計模式之外觀模式設計模式
- go設計模式之外觀模式Go設計模式
- PHP設計模式之外觀模式PHP設計模式
- 設計模式(十五)----結構型模式之外觀模式設計模式
- 設計模式系列之外觀模式(Facade Pattern)——提供統一的入口設計模式
- java設計模式-外觀模式Java設計模式
- Java設計模式-觀察者模式Java設計模式
- Java 設計模式之《觀察者模式》Java設計模式
- Java中的設計模式(一):觀察者模式Java設計模式
- 淺識JAVA設計模式——觀察者模式Java設計模式
- Java常用設計模式之觀察者模式Java設計模式
- Java設計模式之(十二)——觀察者模式Java設計模式
- java23種設計模式-門面模式(外觀模式)Java設計模式
- 設計模式-外觀模式設計模式
- 折騰Java設計模式之觀察者模式Java設計模式
- 17.java設計模式之觀察者模式Java設計模式
- Java設計模式——觀察者模式的靈活應用Java設計模式
- 【設計模式】漢堡中的設計模式——觀察者模式設計模式
- Python設計模式-外觀模式Python設計模式
- 設計模式 —— 觀察者模式設計模式
- 設計模式(觀察者模式)設計模式
- 設計模式(十)外觀模式設計模式
- 設計模式----觀察者模式設計模式
- 【設計模式】觀察者模式設計模式
- 設計模式——觀察者模式設計模式
- 設計模式中的觀察者模式設計模式
- 【設計模式】最常用的設計模式之一的觀察者模式設計模式
- Java23種設計模式【22】----》觀察者模式(Observer)Java設計模式Server
- 設計模式之【門面模式(外觀模式)】設計模式
- PHP設計模式-觀察者模式PHP設計模式
- 設計模式解析:觀察者模式設計模式
- 《Head First 設計模式》:外觀模式設計模式
- 設計模式之觀察者模式設計模式
- 設計模式之-觀察者模式設計模式
- 設計模式 #6 (觀察者模式)設計模式
- JS設計模式(觀察者模式)JS設計模式