码迷,mamicode.com
首页 > 其他好文 > 详细

策略模式

时间:2015-10-31 12:51:43      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

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

 

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

 

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

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

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

 

策略模式

标签:

原文地址:http://www.cnblogs.com/gongOnTheWay/p/4885868.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!