美文网首页前端是万能的
《JavaScript设计模式与开发实践》之模板方法模式

《JavaScript设计模式与开发实践》之模板方法模式

作者: 肆意木 | 来源:发表于2019-12-21 15:25 被阅读0次

模板方法模式

定义:只需要使用继承就可以实现的非常简单的模式,严重依赖抽象类的设计模式。

核心概念: 主要分为抽象父类(封装了子类的算法框架,包括实现一些公关方法以及封装子类中所有方法的执行顺序),与实现子类(继承这个抽象类,也继承了整个算法结构,并且可以选择重写父类的方法)。

子类实现中的想法部分被上移到父类中,而讲不同的部分留给子类自己去实现。

DEMO,抽取一个制作饮料的过程,共同部分有煮水、到饮料、倒进杯子里面、添加调料:

父类方法:
var Beverage = function(){};
Beverage.prototype.boilWater = function(){
 console.log( '把水煮沸' );
};
Beverage.prototype.brew = function(){}; // 空方法,应该由子类重写
Beverage.prototype.pourInCup = function(){}; // 空方法,应该由子类重写
Beverage.prototype.addCondiments = function(){}; // 空方法,应该由子类重写
Beverage.prototype.init = function(){
 this.boilWater();
 this.brew();
 this.pourInCup();
 this.addCondiments();
}; 

子类调用方法:
var Coffee = function(){};
Coffee.prototype = new Beverage(); 
Coffee.prototype.brew = function(){
 console.log( '用沸水冲泡咖啡' );
};
Coffee.prototype.pourInCup = function(){
 console.log( '把咖啡倒进杯子' ); 
};
Coffee.prototype.addCondiments = function(){
 console.log( '加糖和牛奶' );
};
var Coffee = new Coffee();
Coffee.init(); 

相关文章

网友评论

    本文标题:《JavaScript设计模式与开发实践》之模板方法模式

    本文链接:https://www.haomeiwen.com/subject/ztsgnctx.html