輕松掌握java外觀模式
定義:外觀模式(Facade),為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,定義一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用
特點(diǎn):
(1)實(shí)現(xiàn)了子系統(tǒng)與客戶端之間的松耦合關(guān)系。
(2)客戶端屏蔽了子系統(tǒng)組件,減少了客戶端所需處理的對象數(shù)目,并使得子系統(tǒng)使用起來更加容易。
企業(yè)級開發(fā)和常用框架重的應(yīng)用:很多,比如常見的字符串的分割方法spilt也是
具體實(shí)例:
package com.test.faced; /** * 以喝茶為例:我們要喝茶,就得有茶具,茶葉,煮茶工具等 */ public class Demo { public static void main(String[] args) { System.out.println("不使用外觀模式時(shí),這些對象都需要客戶自己去準(zhǔn)備"); Tea tea = new Tea("龍井"); TeaSet teaSet = new TeaSet(); TeaTools teaTools = new TeaTools(); System.out.println("喝茶"); System.out.println("使用外觀模式,我們提供一個(gè)茶館對象:"); TeaHouse teaHouse = new TeaHouse(); teaHouse.drinkTead(); System.out.println("喝茶"); } } class Tea{ public Tea(String name) { System.out.println("準(zhǔn)備想要喝的茶的茶葉:"+name); } } class TeaSet{ public TeaSet() { System.out.println("準(zhǔn)備喝茶要用的茶具"); } } class TeaTools{ public TeaTools() { System.out.println("準(zhǔn)備煮茶要用的工具,煮茶"); } } class TeaHouse{ public void drinkTead(){ Tea tea = new Tea("龍井"); TeaSet teaSet = new TeaSet(); TeaTools teaTools = new TeaTools(); System.out.println("請喝茶"); } }
其實(shí)外觀模式就和我們常提的封裝概念差不多,封裝是將對象封裝起來,而外觀模式,則是將復(fù)雜的流程封裝起來,對外提供一個(gè)統(tǒng)一的接口,讓用戶不用去管整個(gè)復(fù)雜的流程,只關(guān)注流程處理結(jié)果。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java設(shè)計(jì)模式詳解之門面模式(外觀模式)
- Java設(shè)計(jì)模式之外觀模式(Facade模式)介紹
- java設(shè)計(jì)模式之外觀模式學(xué)習(xí)筆記
- java設(shè)計(jì)模式之外觀模式(Facade)
- Java基于享元模式實(shí)現(xiàn)五子棋游戲功能實(shí)例詳解
- Java基于中介者模式實(shí)現(xiàn)多人聊天室功能示例
- Java使用觀察者模式實(shí)現(xiàn)氣象局高溫預(yù)警功能示例
- Java使用訪問者模式解決公司層級結(jié)構(gòu)圖問題詳解
- Java基于命令模式實(shí)現(xiàn)郵局發(fā)信功能詳解
- Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能實(shí)例詳解
相關(guān)文章
SpringCloud Config使用本地倉庫及map注入
這篇文章主要介紹了SpringCloud Config使用本地倉庫及map注入,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Java在Excel中創(chuàng)建多級分組、折疊或展開分組的實(shí)現(xiàn)
這篇文章主要介紹了Java在Excel中創(chuàng)建多級分組、折疊或展開分組的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Java 對10個(gè)數(shù)進(jìn)行排序的實(shí)現(xiàn)代碼
可以利用選擇法,即從后9個(gè)比較過程中,選擇一個(gè)最小的與第一個(gè)元素交換, 下次類推,即用第二個(gè)元素與后8個(gè)進(jìn)行比較,并進(jìn)行交換2017-02-02java堆棧類使用實(shí)例(java中stack的使用方法)
java中stack的使用方法,堆棧是一種"后進(jìn)先出"(LIFO) 的數(shù)據(jù)結(jié)構(gòu), 只能在一端進(jìn)行插入(稱為"壓棧") 或刪除 (稱為"出棧")數(shù)據(jù)的操作,下面看示例吧2013-12-12Mybatis原始執(zhí)行方式Executor代碼實(shí)例
這篇文章主要介紹了Mybatis原始執(zhí)行方式Executor代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Java操作IO對象流進(jìn)行數(shù)據(jù)的讀寫
這篇文章主要介紹了Java操作IO對象流進(jìn)行數(shù)據(jù)的讀寫,本文通過例子逐步介紹了java如何操作IO流,和文字解析,需要的朋友可以參考下2021-07-07Java Predicate及Consumer接口函數(shù)代碼實(shí)現(xiàn)解析
這篇文章主要介紹了Java Predicate及Consumer接口函數(shù)代碼實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06