設計模式——9外觀模式(Facade)
9、外觀模式(Facade)
外觀模式是為了解決類與類之家的依賴關係的,像spring一樣,可以將類和類之間的關係配置到配置檔案中,而外觀模式就是將他們的關係放在一個Facade類中,降低了類類之間的耦合度,該模式中沒有涉及到介面。
我們先看下實現類:
[java] view plaincopy
- public class CPU {
- public void startup(){
- System.out.println(“cpu startup!”);
- }
- public void shutdown(){
- System.out.println(“cpu shutdown!”);
- }
- }
[java] view plaincopy - public class Memory {
- public void startup(){
- System.out.println(“memory startup!”);
- }
- public void shutdown(){
- System.out.println(“memory shutdown!”);
- }
- }
[java] view plaincopy - public class Disk {
- public void startup(){
- System.out.println(“disk startup!”);
- }
- public void shutdown(){
- System.out.println(“disk shutdown!”);
- }
- }
[java] view plaincopy - 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!”);
- }
- }
User類如下:
[java] view plaincopy
- public class User {
- public static void main(String[] args) {
- Computer computer = new Computer();
- computer.startup();
- computer.shutdown();
- }
- }
輸出:
start the computer!
cpu startup!
memory startup!
disk startup!
start computer finished!
begin to close the computer!
cpu shutdown!
memory shutdown!
disk shutdown!
computer closed!
如果我們沒有Computer類,那麼,CPU、Memory、Disk他們之間將會相互持有例項,產生關係,這樣會造成嚴重的依賴,修改一個類,可能會帶來其他類的修改,這不是我們想要看到的,有了Computer類,他們之間的關係被放在了Computer類裡,這樣就起到了解耦的作用,這,就是外觀模式!
相關文章
- JS設計模式之Facade(外觀)模式JS設計模式
- 《設計模式》 - 8. 外觀模式( Facade )設計模式
- C#設計模式-外觀模式(Facade Pattern)C#設計模式
- 設計模式--外觀模式Facade(結構型)設計模式
- C#設計模式系列:外觀模式(Facade)C#設計模式
- 設計模式的征途—11.外觀(Facade)模式設計模式
- 外觀模式(Facade)模式
- 設計模式-外觀模式設計模式
- 設計模式---外觀設計模式設計模式
- 設計模式【9】-- 外觀模式?沒那麼高大上設計模式
- 結構模式 01-外觀模式(facade)模式
- 設計模式(十)外觀模式設計模式
- java設計模式-外觀模式Java設計模式
- 設計模式系列-外觀模式設計模式
- 設計模式(十):外觀模式設計模式
- 【設計模式】外觀設計模式
- Python設計模式-外觀模式Python設計模式
- 極簡設計模式-外觀模式設計模式
- JS 設計模式 十一(外觀模式)JS設計模式
- Java設計模式11:外觀模式Java設計模式
- 軟體設計模式————(外觀模式)設計模式
- 設計模式之【門面模式(外觀模式)】設計模式
- PHP中的facade pattern(外觀模式)PHP模式
- 《Head First 設計模式》:外觀模式設計模式
- 設計模式第六講-外觀模式設計模式
- 【23種設計模式】外觀模式(十)設計模式
- 23種設計模式(8)-外觀模式設計模式
- 通俗 Python 設計模式——外觀模式Python設計模式
- 外觀模式(Facade模式)詳解——小馬同學@Tian模式
- 設計模式 | 外觀模式及典型應用設計模式
- 設計模式系列之外觀模式(Facade Pattern)——提供統一的入口設計模式
- java23種設計模式-門面模式(外觀模式)Java設計模式
- Go 實現常用設計模式(八)外觀模式Go設計模式
- 軟體設計模式系列之十二——外觀模式設計模式
- iOS設計模式之二:外觀模式和裝飾器模式iOS設計模式
- 設計模式學習-使用go實現外觀模式設計模式Go
- 設計模式之外觀模式設計模式
- Objective-C設計模式解析-外觀Object設計模式