外觀模式的目的是為類的調(diào)用提供一個(gè)統(tǒng)一的接口,用戶只需要通過(guò)這個(gè)接口就可以實(shí)現(xiàn)內(nèi)部復(fù)雜類的方法,無(wú)須詳細(xì)了解內(nèi)部復(fù)雜類的具體實(shí)現(xiàn)方式,降低系統(tǒng)調(diào)用的復(fù)雜度。
下例仍以畫圖形為例說(shuō)明外觀模式的用法。Shape接口類有兩個(gè)實(shí)現(xiàn)類Circle和Rectangle,其內(nèi)部具體的畫圓和畫矩形可能較為復(fù)雜,為此,設(shè)計(jì)了一個(gè)外觀類ShapeMaker,通過(guò)ShapeMaker類的調(diào)用就可以實(shí)現(xiàn)畫圓和畫矩形的功能,用戶完全不需要了解Circle和Rectangle類的內(nèi)容代碼。
外觀模式常用于應(yīng)用程序的對(duì)外接口設(shè)計(jì),通過(guò)設(shè)計(jì)一個(gè)外觀類,不了解應(yīng)程序內(nèi)部代碼的人也可以輕松應(yīng)用程序的相關(guān)功能,有利于程序的模塊化設(shè)計(jì)。
Shape接口類:
package facade;
public interface Shape {
public void draw();
}
Circle實(shí)現(xiàn)類:
package facade;
public class Circle implements Shape{
@Override
public void draw() {
System.out.println("畫圓形");
}
}
Rectangle實(shí)現(xiàn)類:
package facade;
public class Rectangle implements Shape{
@Override
public void draw() {
System.out.println("畫矩形");
}
}
ShapeMaker外觀類:
package facade;
public class ShapeMaker {
private Shape circle;
private Shape rectangle;
public ShapeMaker() {
circle=new Circle();
rectangle=new Rectangle();
}
public void circleDraw() {
circle.draw();
}
public void rectangleDraw() {
rectangle.draw();
}
}
主函數(shù)調(diào)用方式:
package main;
import facade.*;
public class FacadePattern {
public static void main(String[] args) {
ShapeMaker shapeMaker=new ShapeMaker();
shapeMaker.circleDraw();
shapeMaker.rectangleDraw();
}
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
本文以標(biāo)準(zhǔn)的I2C 總線協(xié)議為基礎(chǔ),提出了一種基于FPGA的I2C SLAVE 模式總線的設(shè)計(jì)方案。方案主要介紹了SLAVE 模式的特點(diǎn)。給出了設(shè)計(jì)的原理框圖和modelsim 下的行
發(fā)表于 02-26 11:39
?1.4w次閱讀
百靈鳥電路的設(shè)計(jì)方案電子技術(shù)綜合課程設(shè)計(jì)報(bào)告一、綜合設(shè)計(jì)的目的與要求:設(shè)計(jì)一百靈鳥電路,要求:A:在不同的光照下發(fā)出高低變化的鳴叫聲;B:周期性的鳴叫 T=2~3秒。
發(fā)表于 12-16 11:47
一種實(shí)用的單片機(jī)雙CPU設(shè)計(jì)方案及其應(yīng)用
發(fā)表于 08-10 01:00
本帖最后由 我是大彭 于 2014-3-12 15:52 編輯
STM32設(shè)計(jì)方案與示例分享第一波分享一下基于STM32單片機(jī)的數(shù)據(jù)記錄裝置設(shè)計(jì)方案基于STM32的多路電壓測(cè)量設(shè)計(jì)方案嵌入式
發(fā)表于 03-12 14:47
的儀表不斷在汽車上應(yīng)用。下列介紹民用汽車中常見(jiàn)的車載顯示技術(shù)及應(yīng)用,并闡述其設(shè)計(jì)方案。儀表盤設(shè)計(jì)解決方案:詳述基于TMS470PLF221RFPQ1的高端帶汽車儀表盤方案詳述為嵌入式圖形應(yīng)用選擇合適
發(fā)表于 12-15 14:19
很實(shí)用的基于單片機(jī)控制的開(kāi)關(guān)電源及其設(shè)計(jì)方案
發(fā)表于 06-22 12:23
直立行車參考設(shè)計(jì)方案
發(fā)表于 08-17 12:19
都是經(jīng)典項(xiàng)目,建議下載學(xué)習(xí)STM32設(shè)計(jì)方案與示例分享 第一波stm32設(shè)計(jì)方案與示例分享第二波STM32計(jì)方案與示例分享 第三波STM32計(jì)方案與示例分享 第四波
發(fā)表于 09-03 18:52
了非常廣泛的應(yīng)用。本文為大家介紹幾種變頻器的設(shè)計(jì)方案,包含完整軟硬件方案?;赟imulink的數(shù)字下變頻器設(shè)計(jì)及其FPGA實(shí)現(xiàn)
發(fā)表于 08-28 07:42
一種實(shí)用的單片機(jī)雙CPU設(shè)計(jì)方案及其應(yīng)用:針對(duì)傳統(tǒng)儀表具有的硬件資源不足、速度慢等功能缺陷,提出了一種基于單片機(jī)的CPU設(shè)計(jì)方案,即擴(kuò)展CPU,直接從主CPU對(duì)應(yīng)的數(shù)據(jù)顯示I/O口上獲
發(fā)表于 08-26 19:15
?35次下載
新型高性能鋰離子電池充電器的設(shè)計(jì)方案
摘要:介紹了新型高性能充電組合電路(充電器)的設(shè)計(jì)方案及其功能和特點(diǎn),
發(fā)表于 07-15 08:03
?564次閱讀
耳溫槍設(shè)計(jì)方案設(shè)計(jì)耳溫槍設(shè)計(jì)方案設(shè)計(jì)耳溫槍設(shè)計(jì)方案設(shè)計(jì)
發(fā)表于 11-13 15:58
?0次下載
并網(wǎng)逆變器的設(shè)計(jì)方案并網(wǎng)逆變器的設(shè)計(jì)方案并網(wǎng)逆變器的設(shè)計(jì)方案
發(fā)表于 01-11 14:04
?22次下載
據(jù)外媒euronews報(bào)道,為了尋求更多的客戶,日前,芯片設(shè)計(jì)公司ARM推出了新的授權(quán)模式,將允許芯片廠商在支付最終選擇費(fèi)用前嘗試不同的芯片設(shè)計(jì)方案。
發(fā)表于 07-23 10:28
?4253次閱讀
針對(duì)降低多模式電源管理IC在輕載與待機(jī)工作模式下功耗,提高其全負(fù)載條件下工作效率的需要,提出一種電源管理IC供電系統(tǒng)的設(shè)計(jì)方案,實(shí)現(xiàn)了其在啟動(dòng)、關(guān)斷、重載、輕載以及待機(jī)等各種工作情況下的高效率低功耗工作。
發(fā)表于 05-20 09:50
?3945次閱讀
評(píng)論