Java设计模式-外观模式(Facade)
生活随笔
收集整理的這篇文章主要介紹了
Java设计模式-外观模式(Facade)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
?
外觀模式是為了解決類與類之家的依賴關(guān)系的,像spring一樣,可以將類和類之間的關(guān)系配置到配置文件中,而外觀模式就是將他們的關(guān)系放在一個Facade類中,降低了類類之間的耦合度,該模式中沒有涉及到接口,看下類圖:(我們以一個計算機的啟動過程為例)
?
實現(xiàn)類:
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!"); } } 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!"); } } 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他們之間將會相互持有實例,產(chǎn)生關(guān)系,這樣會造成嚴(yán)重的依賴,修改一個類,可能會帶來其他類的修改,這不是我們想要看到的,有了Computer類,他們之間的關(guān)系被放在了Computer類里,這樣就起到了解耦的作用,這,就是外觀模式!
?
轉(zhuǎn)載于:https://www.cnblogs.com/hwaggLee/p/4508553.html
總結(jié)
以上是生活随笔為你收集整理的Java设计模式-外观模式(Facade)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JPA和 QueryDSL入门
- 下一篇: 三维人脸重建:精读3dmm.py