18-TypeScript模板方法模式
2024-10-13 07:38:46
在有些情况下,一个功能在基础功能上是不会变的,算法的基本骨架也是确定的,但是在某些场景下算法的具体实现有些差异。应对这种问题,可以采用模板方法模式:
abstract class Salary{
abstract ComputeBaseSalary():void;
abstract ComputeDecuteSalary():void;
abstract ComputeBonusSalary():void;
//定义了通用实现与算法骨架,具体实现在子类中有差别
ComputeSalary():void{
console.log("开始计算工资");
this.ComputeBaseSalary();
this.ComputeDecuteSalary();
this.ComputeBonusSalary();
}
} class ITSalary extends Salary{
ComputeBaseSalary():void{
console.log("IT基本工资");
}
ComputeDecuteSalary():void{
console.log("IT没有提成");
}
ComputeBonusSalary():void{
console.log("IT奖金");
}
} class SalesSalary extends Salary{
ComputeBaseSalary():void{
console.log("Sales基本工资");
}
ComputeDecuteSalary():void{
console.log("Sales提成");
}
ComputeBonusSalary():void{
console.log("Sales没有奖金");
}
} var itsalary=new ITSalary();
itsalary.ComputeSalary();
var salessalary=new SalesSalary(); salessalary.ComputeSalary();
欢迎加入QQ群讨论:573336726
最新文章
- 学习winform第三方界面weiFenLuo.winFormsUI.Docking.dll
- Codeforces Round #304 C(Div. 2)(模拟)
- php浏览历史记录
- nokogiri如何使用
- MySQL学习笔记01-MYSQL安装
- PHP获取文件目录dirname(__FILE__),getcwd()
- sql server 查找字段上的约束
- WiFi Test Entity
- Android清除本地数据缓存代码
- Web分析日志分析2
- 杜教的AAA树
- 通过匹配绑定select option的文本值 模糊匹配
- 学习笔记:javascript内置对象:字符串对象
- Leetcode#169. Majority Element(求众数)
- Python3学习笔记32-xlwt模块
- ganglia问题汇总
- springBoot 整合mybaits 逆向工程
- js实现cookie跨域功能
- Introduction to debugging neural networks
- Flink的入门
热门文章
- [APIO2009]抢掠计划
- iOS开发——自定义转场动画
- 标注-CRF条件随机场
- angular2 实现的小项目
- 解决PhpMyadmin1440秒未活动自动退出
- C++学习-9
- 依赖反转原则DIP 与 asp.net core 项目结构
- 洛谷 P2401 不等数列
- 3.21li = [1,'a','b',2,3,'a'] # li[1] = 'dfasdfas' # print(li)
- ER图