zoukankan      html  css  js  c++  java
  • 18-TypeScript模板方法模式

    在有些情况下,一个功能在基础功能上是不会变的,算法的基本骨架也是确定的,但是在某些场景下算法的具体实现有些差异。应对这种问题,可以采用模板方法模式:

    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

  • 相关阅读:
    一些特殊的矩阵快速幂 hdu5950 hdu3369 hdu 3483
    HDU
    UVA-796 Critical Links 找桥
    HDU 4612 Warm up
    2017 ICPC乌鲁木齐 A Coins 概率dp
    HDU6223 Infinite Fraction Path bfs+剪枝
    Java基础知识学习(一)
    算法(一)
    面试题整理:SQL(二)
    面试题整理:SQL(一)
  • 原文地址:https://www.cnblogs.com/malaoko/p/7605669.html
Copyright © 2011-2022 走看看