0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

外觀模式的目的及其設(shè)計(jì)方案

冬至子 ? 來(lái)源:全棧開(kāi)發(fā)的碼農(nóng) ? 作者:全棧開(kāi)發(fā)的碼農(nóng) ? 2023-06-01 15:32 ? 次閱讀

外觀模式的目的是為類(lèi)的調(diào)用提供一個(gè)統(tǒng)一的接口,用戶只需要通過(guò)這個(gè)接口就可以實(shí)現(xiàn)內(nèi)部復(fù)雜類(lèi)的方法,無(wú)須詳細(xì)了解內(nèi)部復(fù)雜類(lèi)的具體實(shí)現(xiàn)方式,降低系統(tǒng)調(diào)用的復(fù)雜度。

下例仍以畫(huà)圖形為例說(shuō)明外觀模式的用法。Shape接口類(lèi)有兩個(gè)實(shí)現(xiàn)類(lèi)Circle和Rectangle,其內(nèi)部具體的畫(huà)圓和畫(huà)矩形可能較為復(fù)雜,為此,設(shè)計(jì)了一個(gè)外觀類(lèi)ShapeMaker,通過(guò)ShapeMaker類(lèi)的調(diào)用就可以實(shí)現(xiàn)畫(huà)圓和畫(huà)矩形的功能,用戶完全不需要了解Circle和Rectangle類(lèi)的內(nèi)容代碼。

外觀模式常用于應(yīng)用程序的對(duì)外接口設(shè)計(jì),通過(guò)設(shè)計(jì)一個(gè)外觀類(lèi),不了解應(yīng)程序內(nèi)部代碼的人也可以輕松應(yīng)用程序的相關(guān)功能,有利于程序的模塊化設(shè)計(jì)。

圖片

Shape接口類(lèi):

package facade;
public interface Shape {
  public void draw();
}

Circle實(shí)現(xiàn)類(lèi):

package facade;
public class Circle implements Shape{
  @Override
  public void draw() {
    System.out.println("畫(huà)圓形");  
  }
}

Rectangle實(shí)現(xiàn)類(lèi):

package facade;
public class Rectangle implements Shape{
  @Override
  public void draw() {
    System.out.println("畫(huà)矩形");  
  }
}

ShapeMaker外觀類(lèi):

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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • printf函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    31

    瀏覽量

    5865
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于FPGA的I2C SLAVE模式總線的設(shè)計(jì)方案

    本文以標(biāo)準(zhǔn)的I2C 總線協(xié)議為基礎(chǔ),提出了一種基于FPGA的I2C SLAVE 模式總線的設(shè)計(jì)方案。方案主要介紹了SLAVE 模式的特點(diǎn)。給出了設(shè)計(jì)的原理框圖和modelsim 下的行
    發(fā)表于 02-26 11:39 ?1.3w次閱讀

    百靈鳥(niǎo)電路的設(shè)計(jì)方案

    百靈鳥(niǎo)電路的設(shè)計(jì)方案電子技術(shù)綜合課程設(shè)計(jì)報(bào)告一、綜合設(shè)計(jì)的目的與要求:設(shè)計(jì)一百靈鳥(niǎo)電路,要求:A:在不同的光照下發(fā)出高低變化的鳴叫聲;B:周期性的鳴叫 T=2~3秒。
    發(fā)表于 12-16 11:47

    一種實(shí)用的單片機(jī)雙CPU設(shè)計(jì)方案及其應(yīng)用

    一種實(shí)用的單片機(jī)雙CPU設(shè)計(jì)方案及其應(yīng)用
    發(fā)表于 08-10 01:00

    【資料分享】STM32設(shè)計(jì)方案與示例分享 第一波

    本帖最后由 我是大彭 于 2014-3-12 15:52 編輯 STM32設(shè)計(jì)方案與示例分享第一波分享一下基于STM32單片機(jī)的數(shù)據(jù)記錄裝置設(shè)計(jì)方案基于STM32的多路電壓測(cè)量設(shè)計(jì)方案嵌入式
    發(fā)表于 03-12 14:47

    車(chē)載顯示技術(shù)及其應(yīng)用方案~

    的儀表不斷在汽車(chē)上應(yīng)用。下列介紹民用汽車(chē)中常見(jiàn)的車(chē)載顯示技術(shù)及應(yīng)用,并闡述其設(shè)計(jì)方案。儀表盤(pán)設(shè)計(jì)解決方案:詳述基于TMS470PLF221RFPQ1的高端帶汽車(chē)儀表盤(pán)方案詳述為嵌入式圖形應(yīng)用選擇合適
    發(fā)表于 12-15 14:19

    基于單片機(jī)控制的開(kāi)關(guān)電源及其設(shè)計(jì)方案

    很實(shí)用的基于單片機(jī)控制的開(kāi)關(guān)電源及其設(shè)計(jì)方案
    發(fā)表于 06-22 12:23

    直立行車(chē)參考設(shè)計(jì)方案

    直立行車(chē)參考設(shè)計(jì)方案
    發(fā)表于 08-17 12:19

    STM32設(shè)計(jì)方案與示例分享

    都是經(jīng)典項(xiàng)目,建議下載學(xué)習(xí)STM32設(shè)計(jì)方案與示例分享 第一波stm32設(shè)計(jì)方案與示例分享第二波STM32計(jì)方案與示例分享 第三波STM32計(jì)方案與示例分享 第四波
    發(fā)表于 09-03 18:52

    變頻器有哪些設(shè)計(jì)方案?

    了非常廣泛的應(yīng)用。本文為大家介紹幾種變頻器的設(shè)計(jì)方案,包含完整軟硬件方案?;赟imulink的數(shù)字下變頻器設(shè)計(jì)及其FPGA實(shí)現(xiàn)
    發(fā)表于 08-28 07:42

    一種實(shí)用的單片機(jī)雙CPU設(shè)計(jì)方案及其應(yīng)用

    一種實(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ì)方案   摘要:介紹了新型高性能充電組合電路(充電器)的設(shè)計(jì)方案及其功能和特點(diǎn),
    發(fā)表于 07-15 08:03 ?546次閱讀
    新型高性能鋰離子電池充電器的<b class='flag-5'>設(shè)計(jì)方案</b>

    耳溫槍設(shè)計(jì)方案設(shè)計(jì)

    耳溫槍設(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ì)方案并網(wǎng)逆變器的設(shè)計(jì)方案
    發(fā)表于 01-11 14:04 ?21次下載

    芯片設(shè)計(jì)公司ARM推出了新的授權(quán)模式,嘗試不同的芯片設(shè)計(jì)方案

    據(jù)外媒euronews報(bào)道,為了尋求更多的客戶,日前,芯片設(shè)計(jì)公司ARM推出了新的授權(quán)模式,將允許芯片廠商在支付最終選擇費(fèi)用前嘗試不同的芯片設(shè)計(jì)方案
    的頭像 發(fā)表于 07-23 10:28 ?4170次閱讀
    芯片設(shè)計(jì)公司ARM推出了新的授權(quán)<b class='flag-5'>模式</b>,嘗試不同的芯片<b class='flag-5'>設(shè)計(jì)方案</b>

    模式電源管理IC的低功耗設(shè)計(jì)方案

    針對(duì)降低多模式電源管理IC在輕載與待機(jī)工作模式下功耗,提高其全負(fù)載條件下工作效率的需要,提出一種電源管理IC供電系統(tǒng)的設(shè)計(jì)方案,實(shí)現(xiàn)了其在啟動(dòng)、關(guān)斷、重載、輕載以及待機(jī)等各種工作情況下的高效率低功耗工作。
    的頭像 發(fā)表于 05-20 09:50 ?3840次閱讀