外觀模式
為子系統中的一組介面提供一個一致的介面,Facade模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。隱藏系統的複雜性,並向客戶端提供了一個客戶端可以訪問系統的介面。降低訪問複雜系統的內部子系統時的複雜度。在客戶端和複雜系統之間再加一層,將呼叫順序、依賴關係等處理好。
例項
模擬電腦啟動,假設電腦啟動順序:啟動CPU,啟動記憶體,啟動硬碟,載入資料等。
程式碼
// 外觀模式
function CPU() {
this.startup = function () {
console.log("啟動CPU");
};
}
function Memory() {
this.startup = function () {
console.log("啟動Memory");
};
}
function Disk() {
this.startup = function () {
console.log("啟動Disk");
};
}
function Computer() {
var _cpu, _memory, _disk;
_cpu = new CPU();
_memory = new Memory();
_disk = new Disk();
this.start = function () {
_cpu.startup();
_memory.startup();
_disk.startup();
}
}
computer = new Computer();
computer.start();
外觀模式優點
1.減少系統相互依賴。
2.提高靈活性。
2.提高了安全性。
適用場景:
1.為複雜的模組或子系統提供外界訪問的模組。
2.客戶程式與抽象類的實現部分之間存在著很大的依賴性。引入facade 將這個子系統與客戶以及其他的子系統分離,可以提高子系統的獨立性和可移植性。