Typescript描述策略模式

首先澄清策略模式概念:

策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客
户。

HeadFirst设计模式中基于SimUDuck游戏介绍使用策略模式实现鸭子的飞行与叫声两个行为。通过为鸭子实现飞行方法进入主题,有的鸭子会飞,有的鸭子不会飞,具体的鸭子实现是通过继承自Duck基类实现,在基类中定义了鸭子飞行的行为,若子类鸭子中没有飞行行为,比如橡皮鸭,则需要再次实现飞行方法以覆盖父类中定义过得行为。又或者不同子类的鸭子飞行的方式不一样,则也需要单独在子类中重新覆盖父类的方法。而且,若日后鸭子的飞行行为发生了变化,则还需要在子类中逐个修改飞行方法,况且还不能再执行过程中动态改变鸭子的飞行行为。这样的实现非常不具有弹性,况且日后维护起来也比较麻烦。

为了消化策略模式,本文基于TypeScript演示策略模式的应用。

执行 tsc strategyModel.ts 生成对应的js文件;
执行 node strategyModel.js运行

abstract class FlyBehavior {
   
    constructor() {}
    abstract fly(): void;
}

class FlyHigher extends FlyBehavior {
   
    constructor() {
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值