設計模式-外觀模式(facade)
阿新 • • 發佈:2018-11-08
基本概念
外觀模式的作用:
-
鬆散耦合,外觀模式鬆散了客戶端與子系統的耦合關係,讓子系統內部的模組能更容易擴充套件和維護。
-
簡單易用,外觀模式讓子系統更加易用,客戶端不再需要了解子系統內部的實現,也不需要跟眾多子系統內部的模組進行互動,只需要跟門面類互動就可以了。
-
更好的劃分訪問層次-通過合理使用 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();
轉載自:
https://blog.csdn.net/u012420654/article/details/60332995
參考
http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html
http://blog.csdn.net/jason0539/article/details/22775311