javascript設計モードのテンプレート方法モード
1779 ワード
テンプレートモード
定義:継承に基づいて、親クラスで実行するアルゴリズムを定義します.お茶を入れることとコーヒーを入れることはお茶を入れることとコーヒーを入れる過程の違いを比べます.
ステップでお茶を入れてコーヒーを入れます.1湯を沸かしてお湯を沸かします.2つのお茶を入れてコーヒーを入れます.3つのカップにカップを入れます.4つのレモンに砂糖を加えると、ステップ2と4だけの違いがはっきりと分かります.次の手で実現します.
もしお客さんが薬味(砂糖、レモン)を入れたくないなら、どうすればいいですか?
定義:継承に基づいて、親クラスで実行するアルゴリズムを定義します.お茶を入れることとコーヒーを入れることはお茶を入れることとコーヒーを入れる過程の違いを比べます.
ステップでお茶を入れてコーヒーを入れます.1湯を沸かしてお湯を沸かします.2つのお茶を入れてコーヒーを入れます.3つのカップにカップを入れます.4つのレモンに砂糖を加えると、ステップ2と4だけの違いがはっきりと分かります.次の手で実現します.
const Drinks = function(){}
Drinks.prototype.firstStep=function(){
console.log(' ')
}
Drinks.prototype.secondStep =function(){}
Drinks.prototype.thirdStep = function(){
console.log(' ')
}
Drinks.prototype.fourthStep = function(){}
Drinks.prototype.init = function(){// :
this.firstStep()
this.secondStep()
this.thirdStep()
this.fourthStep()
}
const Tea=function(){}
Tea.prototype=new Drinks
Tea.prototype.secondStep = function(){
console.log(' ')
}
Tea.prototype.fourthStep =function(){
console.log(' ')
}
const Coffee =function(){}
Coffee.prototype = new Drinks
Coffee.prototype.secondStep = function(){
console.log(' ')
}
Coffee.prototype.fourthStep = function(){
console.log(' ')
}
const tea = new Tea()
tea.init()
//
//
//
//
const coffee =new Coffee()
coffee.init()
//
//
//
//
かぎもしお客さんが薬味(砂糖、レモン)を入れたくないなら、どうすればいいですか?
Drinks.prototype.ifNeedFlavour = function(){//
return true
}
Drinks.prototype.init = function(){
// :
this.firstStep()
this.secondStep()
this.thirdStep()
if(this.ifNeedFlavour){// true
this.fourthStep()
}
}
const Coffee = function(){}
Coffee.prototype = new Drinks()
Coffee.prototype.ifNeedFlavour = function(){
return window.confirm(' ')//
}