zoukankan      html  css  js  c++  java
  • JavaScript设计模式样例十三 —— 模版方法模式

    模板方法模式(Template Method Pattern)

    定义:一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。
    目的:一些方法通用,却在每一个子类都重新写了这一方法。
    场景:在造房子的时候,地基、走线、水管都一样,只有在建筑的后期才有加壁橱加栅栏等差异。
    // 定义烧水类
    class BoilWater {
        constructor () {
    
        }
    
        // 烧水
        boilWater = () => {
            console.log('I am boil the water!')
        }
        // 沏茶
        makeTea = () => {
            console.log('大碗茶,上嘞')
        }
        init = () => {
            this.boilWater()
            this.makeTea()
        }
    }
    
    class Tea extends BoilWater {
        constructor () {
            super()
        }
    
        // 重写沏茶
        makeTea = () => {
            console.log('头杯茶不喝,喝第三杯')
        }
    }
    
    let tea = new Tea()
    tea.init()

    Git地址:https://github.com/skillnull/Design-Mode-Example

  • 相关阅读:
    装饰复杂函数
    装饰器01
    闭包
    函数的嵌套定义
    名称空间
    函数的嵌套调用
    函数的对象
    形参
    实参
    形参与实参
  • 原文地址:https://www.cnblogs.com/Man-Dream-Necessary/p/12457741.html
Copyright © 2011-2022 走看看