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

  • 相关阅读:
    Ajax:创建提示工具
    Ajax:自动刷新
    Ajax:动态加载列表框
    The Elements of C# Style Packaging
    Ajax:读取响应首部
    Ajax:发送请求与处理响应
    XMLHttpRequest对象
    WPF学习:XAML概述
    Ajax:进度条
    Ajax:数据验证
  • 原文地址:https://www.cnblogs.com/malaoko/p/7605669.html
Copyright © 2011-2022 走看看