好程式設計師web前端教程分享js模板模式
什麼是模板模式?
模板模式是抽象父類定義了子類需要重寫的相關方法。 而這些方法,仍然是透過父類方法呼叫的。 根據描述, “模板”的思想體現在:父類定義的介面方法。 除此之外,子類方法的呼叫,也是被父類控制的。
應用場景
一些系統的架構或者演算法骨架,由 “ BOSS ”編寫抽象方法,具體的實現,交給“小弟們”實現。 而絕對是不是用“小弟們”的方法,還是看“ BOSS ”的心情。 不是很恰當的比喻哈 ~
ES6 實現
Animal 是抽象類, Dog 和 Cat 分別具體實現了 eat() 和 sleep() 方法。 Dog 或 Cat 例項可以透過 live() 方法呼叫 eat() 和 sleep() 。
注意: Cat 和 Dog 例項會被自動新增 live() 方法。不暴露 live() 是為了防止 live() 被子類重寫,保證父類的控制權。
class Animal {
constructor() {
// this 指向例項
this.live = () => {
this.eat();
this.sleep();
};
}
eat() {
throw new Error(" 模板類方法必須被重寫 ");
}
sleep() {
throw new Error(" 模板類方法必須被重寫 ");
}
}
class Dog extends Animal {
constructor(...args) {
super(...args);
}
eat() {
console.log(" 狗吃糧 ");
}
sleep() {
console.log(" 狗睡覺 ");
}
}
class Cat extends Animal {
constructor(...args) {
super(...args);
}
eat() {
console.log(" 貓吃糧 ");
}
sleep() {
console.log(" 貓睡覺 ");
}
}
/********* 以下為測試程式碼 ********/
// 此時 , Animal 中的 this 指向 dog
let dog = new Dog();
dog.live();
// 此時 , Animal 中的 this 指向 cat
let cat = new Cat();
cat.live();
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2641196/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師web前端教程分享js閉包程式設計師Web前端JS
- 好程式設計師web前端教程分享js reduce方法使用教程程式設計師Web前端JS
- 好程式設計師web前端教程分享Vue.js面試題程式設計師Web前端Vue.js面試題
- 好程式設計師web前端教程分享JS基礎知識程式設計師Web前端JS
- 好程式設計師web前端教程分享CSS技巧!程式設計師Web前端CSS
- 好程式設計師web前端教程分享js中的模組化二程式設計師Web前端JS
- 好程式設計師web前端教程分享js中的模組化一程式設計師Web前端JS
- 好程式設計師web前端教程分享web前端基礎知識程式設計師Web前端
- 好程式設計師web前端教程分享JavaScript面試題程式設計師Web前端JavaScript面試題
- 好程式設計師web前端教程分享js檔案引用編碼方式程式設計師Web前端JS
- 好程式設計師web前端教程分享javascript 練習題程式設計師Web前端JavaScript
- 好程式設計師web前端教程分享JavaScript簡寫方法程式設計師Web前端JavaScript
- 好程式設計師Web前端教程分享Vue學習心得程式設計師Web前端Vue
- 好程式設計師Web前端教程分享JavaScript開發技巧程式設計師Web前端JavaScript
- 好程式設計師web前端教程:字串程式設計師Web前端字串
- 好程式設計師web前端教程分享web中CSS絕對定位程式設計師Web前端CSS
- 好程式設計師web前端教程分享前端javascript練習題二程式設計師Web前端JavaScript
- 好程式設計師web前端教程分享前端javascript練習題三程式設計師Web前端JavaScript
- 好程式設計師web前端教程分享前端 javascript 練習題二程式設計師Web前端JavaScript
- 好程式設計師Web前端分享前端CSS篇程式設計師Web前端CSS
- 好程式設計師web前端教程分享web前端入門基礎知識程式設計師Web前端
- 好程式設計師web前端教程之Node.Js流程程式設計師Web前端Node.js
- 好程式設計師web前端分享js剪下板Clipboard.js 使用程式設計師Web前端JS
- 好程式設計師web前端分享JavaScript中常見的反模式程式設計師Web前端JavaScript模式
- 好程式設計師web前端培訓分享CSS定位的教程程式設計師Web前端CSS
- 好程式設計師web前端教程分享HTML5面試技巧程式設計師Web前端HTML面試
- 好程式設計師web前端教程分享Jquery常見面試題程式設計師Web前端jQuery面試題
- 好程式設計師web前端教程分享JavaScript Math(算數)物件程式設計師Web前端JavaScript物件
- 好程式設計師web前端教程分享前端javascript練習題之promise程式設計師Web前端JavaScriptPromise
- 好程式設計師web前端分享js實現實戰案例程式設計師Web前端JS
- 好程式設計師web前端分享應該怎樣學好web前端?程式設計師Web前端
- 好程式設計師web前端分享web前端入門知識程式設計師Web前端
- 好程式設計師web前端學習教程之Node Js流程程式設計師Web前端JS
- 好程式設計師web前端教程分享預設行為和拖拽思路程式設計師Web前端
- 好程式設計師web前端分享CSS學習:HSLA顏色模式程式設計師Web前端CSS模式
- 好程式設計師web前端教程分享JavaScript的執行機制!程式設計師Web前端JavaScript
- 好程式設計師分享Web前端開發工具程式設計師Web前端
- 好程式設計師web前端分享Cookie知識程式設計師Web前端Cookie