国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js設(shè)計(jì)模式 --- 模版設(shè)計(jì)模式

wfc_666 / 1370人閱讀

摘要:代碼復(fù)用的基本技術(shù),在數(shù)據(jù)庫設(shè)計(jì)中尤為重要。存在一種反向的控制結(jié)構(gòu),通過一個(gè)父類調(diào)用其子類的操作,通過子類對(duì)父類進(jìn)行擴(kuò)展增加新的行為,符合開閉原則。

模版設(shè)計(jì)模式
設(shè)計(jì)模式處處透漏者前輩們的指揮, 在眾多設(shè)計(jì)模式中模版設(shè)計(jì)模式是軟件設(shè)計(jì)中最常用, 最正統(tǒng)的模式, 也是本人最喜歡的模式, 其就像一顆顆螺絲釘處處體現(xiàn)在軟件設(shè)計(jì)和其他模式中

父類定義一個(gè)模板結(jié)構(gòu),將部分具體內(nèi)容延遲到子類去實(shí)現(xiàn)

在軟件系統(tǒng)設(shè)計(jì)中最常用的就是 接口--抽象類--類 三級(jí)設(shè)計(jì)模式, 如下圖

模版設(shè)計(jì)模式結(jié)構(gòu)

再此模式中接口定義了方法, 抽象類定義了算法的框架實(shí)現(xiàn)了一部分算法, 對(duì)象類則實(shí)現(xiàn)了剩余的其他方法(當(dāng)然如有需要可以靈活配置, 比如抽象類實(shí)現(xiàn)了一個(gè)默認(rèn)的方法, 如有需要對(duì)象類可以重寫這個(gè)方法)

實(shí)現(xiàn)

接口

let IEat = new Interface("IEat", ["eatDinner","buy","cook", "eat"])

抽象類

let Eatdinner = function () {
};
Eatdinner.prototype.buy = function () {
  throw new Error();
};
Eatdinner.prototype.cook = function () {
  throw new Error();
};
Eatdinner.prototype.eat = function () {
  console.log("吃");
};
Eatdinner.prototype.eatDinner = function () {
  this.buy();
  this.cook();
  this.eat();
};

對(duì)象類

let EatA = function () {
  Eatdinner.call(this);   
}
extend(EatA, Eatdinner);
EatA.prototype.buy = function () {
  console.log("蘿卜");
}
EatA.prototype.cook = function () {
  console.log("炒");
}

let EatB = function () {
  Eatdinner.call(this);   
}
extend(EatB, Eatdinner);
EatB.prototype.buy = function () {
  console.log("蘿卜");
}
EatB.prototype.cook = function () {
  console.log("炸");
}

let EatC = function () {
  Eatdinner.call(this);   
}
extend(EatC, Eatdinner);
EatC.prototype.buy = function () {
  console.log("青菜");
}
EatC.prototype.cook = function () {
  console.log("烤");
}

模板模式的優(yōu)點(diǎn)

具體細(xì)節(jié)步驟實(shí)現(xiàn)定義在子類中,子類定義詳細(xì)處理算法是不會(huì)改變算法整體結(jié)構(gòu)。

代碼復(fù)用的基本技術(shù),在數(shù)據(jù)庫設(shè)計(jì)中尤為重要。

存在一種反向的控制結(jié)構(gòu),通過一個(gè)父類調(diào)用其子類的操作,通過子類對(duì)父類進(jìn)行擴(kuò)展增加新的行為,符合“開閉原則”。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/110126.html

相關(guān)文章

  • JS 設(shè)計(jì)模式 九(模板模式

    摘要:模版方法由抽象類聲明并加以實(shí)現(xiàn)。抽象類中的模版方法正是通過實(shí)現(xiàn)類擴(kuò)展的方法來完成業(yè)務(wù)邏輯。一般來說,抽象類中的模版方法是不易反生改變的部分,而抽象方法是容易反生變化的部分,因此通過增加實(shí)現(xiàn)類一般可以很容易實(shí)現(xiàn)功能的擴(kuò)展,符合開閉原則。 模板方法模式 定義一個(gè)操作中算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變算法的結(jié)構(gòu)即可重定義該算法中的某些特定步驟。 模板方法模式是編程中經(jīng)...

    張遷 評(píng)論0 收藏0
  • HTML 代碼復(fù)用實(shí)踐

    摘要:安裝好之后,來簡單的組織一下文件的目錄生產(chǎn)環(huán)境的存放文件夾公共部分的存放文件夾編輯后的文件在新建的,配置好接著新建兩個(gè)文件,分別是頭部和底部這是的內(nèi)容這是的內(nèi)容最后在新建一個(gè),把要用到的和給進(jìn)來。 前言 通常我們所做的一些頁面,我們可以從設(shè)計(jì)圖里面看出有一些地方是相同的。例如:頭部,底部,側(cè)邊欄等等。如果是制作靜態(tài)頁面的同學(xué),對(duì)于這些重復(fù)的部分只能夠通過復(fù)制粘貼到新的頁面來,如果頁面...

    Profeel 評(píng)論0 收藏0
  • Express 實(shí)戰(zhàn)(七):視圖與模板:Pug 和 EJS

    摘要:而框架中最常用的兩個(gè)視圖引擎是和。實(shí)際上這些上下文對(duì)象就是會(huì)在視圖中使用到的變量。其實(shí)視圖緩存并不是緩存視圖實(shí)際上它緩存的視圖路徑。根據(jù)默認(rèn)視圖引擎將缺少拓展名的視圖文件補(bǔ)充完整。實(shí)際上存在由不同組織維護(hù)的兩個(gè)不同版本的。 showImg(https://segmentfault.com/img/remote/1460000010821004);前面的內(nèi)容大都是關(guān)于 Express 框...

    wmui 評(píng)論0 收藏0
  • ArcGIS 柵格函數(shù)在線調(diào)用詳解

    摘要:使用柵格函數(shù)支持直接在前端使用柵格函數(shù)來重新渲染影像服務(wù)。針對(duì)數(shù)據(jù)在柵格函數(shù)模版編輯器中使用渲染地貌函數(shù),并且設(shè)計(jì)好結(jié)果的渲染方式。配置柵格函數(shù)模版可以在兩種情況下進(jìn)行。 ArcGIS 柵格函數(shù)在線調(diào)用詳解 導(dǎo)讀:ArcGIS從10.0版本開始引用鑲嵌數(shù)據(jù)集,并且第一次在影像中加入柵格函數(shù)(raster functions),使得影像的呈現(xiàn)和信息提取與GIS緊密的結(jié)合起來,簡單的影像功...

    894974231 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<