策略模式

项目:开发一个鸭子游戏,使用OO技术

 

情况一:第一个版本—设计超类,超类实现了会飞和会呱呱叫,其他的鸭子继承该超类,同样拥有该行为
缺 点:依赖父类的实现,牵一发而动全身。

 

情况二:第二个版本希望扩展一些新的鸭子,但是这些鸭子中,有的不会呱呱叫,有的不会飞,那么如果只是修改父类的实现问题很大了,因为有的鸭子不会叫或者不会飞
解决方案:
    1.超类实现会飞和呱呱叫方法,特殊的子类重写覆盖这两个方法
也可以但是感觉不是很好实现方式
2.分离出会飞和呱呱叫接口,会飞和会叫的鸭子实现该接口
      缺点:代码无法复用(依赖子类的实现,每个子类里面都要写自己的实现,很多都一样)
3.分类出会飞和呱呱叫接口,实现这两个接口的类,鸭子中会动态调用对会飞和呱呱叫接口的实现类的方法——

优点
        (1)把不变和变化进行了分离
        (2)针对接口编程
        (3)用组合,少用继承

这就是策略模式:将会飞和呱呱叫的动作(可变部分),委托别人处理,而不是使用定义的超类和子类

 

转载于:https://www.cnblogs.com/gongOnTheWay/p/4885868.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值