日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java常用设计模式————外观模式

發(fā)布時間:2025/3/12 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java常用设计模式————外观模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引言

外觀模式(Facade Pattern),又叫“過程模式”。外觀模式為子系統(tǒng)中的一組接口提供一個一致的入口,此模式定義了一個高層接口,這個接口使得這一組子系統(tǒng)更加易用。

一、案例分析

生活中有很多類似的案例,比如駕駛員駕駛汽車,只需要操作方向盤、檔桿、離合器、剎車、油門這幾個主要接口,而汽車內部的一組操作則不需要駕駛員考慮,比如駕駛員踩剎車后,車子就會停下來,而系統(tǒng)內部實際上通過“剎車”這一接口,經(jīng)過一系列的機械傳動到達剎車片。

再比如,一套豪華的家庭影院,用戶只需要簡單點擊遙控器上的“開始”按鈕,一系列諸如:關閉窗簾、打開投影儀、打開音響、放下屏幕就都可以自動完成。

二、外觀模式類圖

以家庭影院案例為參考,遙控器或操作界面提供了統(tǒng)一的外觀接口,接口組裝了一系列子系統(tǒng)運行動作:

三、代碼實現(xiàn)

窗簾子系統(tǒng):

public class Curtain {public void up() {System.out.println("窗簾升起...");}public void down() {System.out.println("窗簾降下...");} }

音響子系統(tǒng):

public class Sound {public void on() {System.out.println("打開音響...");}public void off() {System.out.println("關閉音響...");} }

播放器:

public class Player {public void play() {System.out.println("開始播放...");}public void pause() {System.out.println("暫停播放...");}public void stop() {System.out.println("退出播放器...");} }

投影儀子系統(tǒng):

public class Projector {private Player player;public void init(Player player) {this.player = player;}public void on() {System.out.println("打開投影機...");player.play();}public void off() {player.stop();System.out.println("關閉投影機...");} }

家庭影院外觀類:

public class HomeTheatre {private Curtain curtain;private Projector projector;private Player player;private Sound sound;public HomeTheatre(Curtain curtain, Projector projector, Player player, Sound sound) {super();this.curtain = curtain;this.projector = projector;this.player = player;this.sound = sound;}/** 一鍵啟動*/public void start() {curtain.down();projector.init(player);sound.on();projector.on();}/** 暫停播放*/public void pause() {player.pause();}/** 退出家庭影院*/public void exitAll() {curtain.up();sound.off();projector.off();} }

Client調用端:

public class Client {public static void main(String[] args) {HomeTheatre homeTheatre = new HomeTheatre(new Curtain(), new Projector(), new Player(), new Sound());System.out.println("-----打開家庭影院------");homeTheatre.start();System.out.println("-----暫停播放------");homeTheatre.pause();System.out.println("-----退出家庭影院------");homeTheatre.exitAll();} }

執(zhí)行結果:

-----打開家庭影院------ 窗簾降下... 打開音響... 打開投影機... 開始播放... -----暫停播放------ 暫停播放... -----退出家庭影院------ 窗簾升起... 關閉音響... 退出播放器... 關閉投影機...

總結

外觀模式就是把一部分基礎功能一致的代碼抽離到單獨的子模塊中,然后在外觀類中聚合使用;或者在設計之初就將業(yè)務流設計為多個子系統(tǒng)組合的流水線式,無論哪種方式,外觀模式都會讓代碼的執(zhí)行邏輯一目了然。

如果過去只是把一堆業(yè)務邏輯全部放到一個類中去寫,那這只能算得上是面向過程編程。如果你能夠把一些代碼提出到多個類中去然后依賴它們的話,就成了高大上的外觀模式。

外觀模式雖然極容易理解,但是它并不符合開閉原則,也不要盲目使用。

在Spring 容器環(huán)境的初始化階段就用到了外觀模式,一步一步地執(zhí)行各個子系統(tǒng)的初始化工作。

總結

以上是生活随笔為你收集整理的Java常用设计模式————外观模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。