成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js設(shè)計模式 --- 外觀設(shè)計模式

saucxs / 1751人閱讀

摘要:外觀設(shè)計模式外部與一個子系統(tǒng)的通信必須通過一個統(tǒng)一的門面對象進行,這就是門面模式。此角色知曉相關(guān)的子系統(tǒng)的功能和責(zé)任。外觀模式結(jié)構(gòu)客戶端正常調(diào)用方式外觀模式調(diào)用方式實現(xiàn)未使用外觀模式子系統(tǒng)類客戶端調(diào)用使用外觀模式子系統(tǒng)類同上外觀類客戶端調(diào)用

外觀設(shè)計模式
外部與一個子系統(tǒng)的通信必須通過一個統(tǒng)一的門面(Facade)對象進行,這就是門面模式。

外觀模式為子系統(tǒng)提供了統(tǒng)一的界面, 屏蔽了子類的不同

現(xiàn)代大型軟件發(fā)展到一定程度會非常復(fù)雜, 于是就需要對軟件進行模塊化開發(fā), 將系統(tǒng)分成各個模塊, 有利于維護和拓展,但即使這樣在我們調(diào)用的時候依然要和許多類打交道, 依然很復(fù)雜, 于是外觀設(shè)計模式應(yīng)運而生. 外觀設(shè)計模式就是為多個子系統(tǒng)提供一個統(tǒng)一的外觀類來簡化外部人員操作, 下面是使用外觀模式前后的的醫(yī)院案例

外觀模式就好像一個接待員免去了外部人員與各個科室進行交流, 應(yīng)為各個科室運作流程還是比較復(fù)雜的, 通過一個熟悉業(yè)務(wù)的外觀類可以大大提高醫(yī)院的效率.

正常情況

使用外觀模式后

外觀模式設(shè)計兩種對象

外觀類: 客戶端調(diào)用這個角色的方法。此角色知曉相關(guān)的子系統(tǒng)的功能和責(zé)任。正常情況下,本角色會將所有從客戶端發(fā)來的請求委派到相應(yīng)的子系統(tǒng)中去.

子系統(tǒng)類:可以同時有一個或者多個子系統(tǒng)。每個子系統(tǒng)都不是一個多帶帶的類,而是一個類的集合。每一個子系統(tǒng)都可以被客戶端直接調(diào)用,或者被門面角色直接調(diào)用。子系統(tǒng)并不知道門面的存在,對于子系統(tǒng)而言,門面僅僅是另一個客戶端而已。

外觀模式結(jié)構(gòu)
客戶端正常調(diào)用方式

外觀模式調(diào)用方式

實現(xiàn)

未使用外觀模式

子系統(tǒng)類

let Light = function () {  
};
Light.prototype.turnOn = function () {
  console.log("Light turn on");
};
Light.prototype.turnOff = function () {
  console.log("Light turn off");
};

let TV = function () { 
};
TV.prototype.turnOn = function () {
  console.log("TV turn on");
};
TV.prototype.turnOff = function () {
  console.log("TV turn off");
};

let Computer = function () {
};
Computer.prototype.turnOn = function () {
  console.log("Computer turn on");
};
Computer.prototype.turnOff = function () {
  console.log("Computer turn off");
};

客戶端調(diào)用

let light = new Light();
let tv = new TV();
let computer = new Computer();

light.turnOn();
tv.turnOn();
computer.turnOn();

light.turnOff();
tv.turnOff();
computer.turnOff();

使用外觀模式

子系統(tǒng)類

//同上

外觀類

let Facade = function () {
  this.light = new Light();
  this.tv = new TV();
  this.computer = new Computer();
}
Facade.prototype.turnOn = function () {
  light.turnOn();
  tv.turnOn();
  computer.turnOn();
}
Facade.prototype.turnOff = function () {
  light.turnOff();
  tv.turnOff();
  computer.turnOff();
}

客戶端調(diào)用

let facade = new Facade();

facade.turnOn();
facade.turnOff();

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/107557.html

相關(guān)文章

  • JS或Jquery

    摘要:大潮來襲前端開發(fā)能做些什么去年谷歌和火狐針對提出了的標(biāo)準(zhǔn),顧名思義,即的體驗方式,我們可以戴著頭顯享受沉浸式的網(wǎng)頁,新的標(biāo)準(zhǔn)讓我們可以使用語言來開發(fā)。 VR 大潮來襲 --- 前端開發(fā)能做些什么 去年谷歌和火狐針對 WebVR 提出了 WebVR API 的標(biāo)準(zhǔn),顧名思義,WebVR 即 web + VR 的體驗方式,我們可以戴著頭顯享受沉浸式的網(wǎng)頁,新的 API 標(biāo)準(zhǔn)讓我們可以使用 ...

    CatalpaFlat 評論0 收藏0
  • JS 外觀模式

    摘要:外觀模式在中常常用于解決瀏覽器兼容性問題。實現(xiàn)外觀模式不僅簡化類中的接口,而且對接口與調(diào)用者也進行了解耦。外觀模式的優(yōu)勢是易于使用,而且本身也比較輕量級。 1. 簡介 外觀模式(Facade)為子系統(tǒng)中的一組接口提供了一個一致的界面,此模塊定義了一個高層接口,這個接口值得這一子系統(tǒng)更加容易使用。外觀模式在JS中常常用于解決瀏覽器兼容性問題。 2. 實現(xiàn) 外觀模式不僅簡化類中的接口,而且...

    BothEyes1993 評論0 收藏0
  • js設(shè)計模式--模板方法模式

    摘要:前言本系列文章主要根據(jù)設(shè)計模式與開發(fā)實踐整理而來,其中會加入了一些自己的思考。模板方法模式由兩部分結(jié)構(gòu)組成,第一部分是抽象父類,第二部分是具體的實現(xiàn)子類。 前言 本系列文章主要根據(jù)《JavaScript設(shè)計模式與開發(fā)實踐》整理而來,其中會加入了一些自己的思考。希望對大家有所幫助。 文章系列 js設(shè)計模式--單例模式 js設(shè)計模式--策略模式 js設(shè)計模式--代理模式 js設(shè)計模式--迭...

    yuanxin 評論0 收藏0
  • JS設(shè)計模式之Facade(外觀模式

    摘要:概念模式為更大的代碼提供了一個方便的高層次接口,能夠隱藏其底層的真是復(fù)雜性。參考設(shè)計模式設(shè)計模式系列文章設(shè)計模式之模塊模式揭示模塊模式設(shè)計模式之單例模式設(shè)計模式之外觀模式 概念 Facade模式為更大的代碼提供了一個方便的高層次接口,能夠隱藏其底層的真是復(fù)雜性??梢园阉氤墒呛喕疉PI來展示給其他開發(fā)人員。 優(yōu)缺點 優(yōu)點 簡化接口 使用者與代碼解耦 易于使用 缺點 存在隱性成本,性...

    xiaodao 評論0 收藏0
  • JS設(shè)計模式之Module(模塊)模式、Revealing Module(揭示模塊)模式

    摘要:模塊模式概念模式最初被定義為一種在傳統(tǒng)軟件工程中為類提供私有和共有封裝的方法。應(yīng)用將暴露的公有指針指向到私有函數(shù)和屬性上參考設(shè)計模式設(shè)計模式系列文章設(shè)計模式之工廠模式設(shè)計模式之單例模式設(shè)計模式之外觀模式設(shè)計模式之模塊模式揭示模塊模式 Module(模塊)模式 概念 Module模式最初被定義為一種在傳統(tǒng)軟件工程中為類提供私有和共有封裝的方法。 通過這種方式,能夠使一個單獨的對象擁有共有...

    xavier 評論0 收藏0
  • JS設(shè)計模式--Factory(工廠)模式

    摘要:對解耦是很有用對。設(shè)計模式系列文章設(shè)計模式之觀察者模式發(fā)布訂閱模式設(shè)計模式之工廠模式設(shè)計模式之單例模式設(shè)計模式之外觀模式設(shè)計模式之模塊模式揭示模塊模式 工廠模式 提供一個通用的接口來創(chuàng)建對象 示例 //Car構(gòu)造函數(shù) function Car(option) { this.doors = option.doors || 4 this.color = option...

    UsherChen 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<