一、概述
外觀模式(Facade),也叫過程模式,門面模式,屬於結構型模式,外觀模式爲子系統中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
外觀模式通過定義一個一致的接口,用於屏蔽內部子系統的細節,使得調用端只需跟這個接口發生調用,而無需關心這個子系統的內部細節。
二、角色
外觀角色(Facade): 客戶端通過操作外觀角色從而達到控制子系統角色的目的,對於客戶端來說,外觀角色好比一道屏障,對客戶端屏蔽了子系統的具體實現
子系統角色(SubSystem):表示一個系統的子系統或模塊
三、外觀模式
1.子系統角色
class CPU {
public void on() {
System.out.println("CPU on...");
}
public void off() {
System.out.println("CPU off...");
}
}
class Disk {
public void on() {
System.out.println("Disk on...");
}
public void off() {
System.out.println("Disk off...");
}
}
class Memory {
public void on() {
System.out.println("Memory on...");
}
public void off() {
System.out.println("Memory off...");
}
}
2.外觀角色
public class ComputerFacade {
private CPU cpu;
private Memory memory;
private Disk disk;
public ComputerFacade() {
cpu = new CPU();
memory = new Memory();
disk = new Disk();
}
public void on() {
cpu.on();
memory.on();
disk.on();
}
public void off() {
cpu.off();
memory.off();
disk.off();
}
}
3.使用
@Test
public void testFacade() {
ComputerFacade computer = new ComputerFacade();
computer.on();
computer.off();
}