zoukankan      html  css  js  c++  java
  • 策略模式

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

     

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

     

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

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

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

     

  • 相关阅读:
    Git(五)
    python字符串驻留(intern)机制
    JavaMail接、收邮件
    easyui Tooltip 气泡信息提示
    ligerui ligerTip气泡提示信息
    DES加密
    解决在IE下label中IMG图片无法选中radio的几个方法
    浏览器获取ip地址
    小王子
    jquery 分页
  • 原文地址:https://www.cnblogs.com/gongOnTheWay/p/4885868.html
Copyright © 2011-2022 走看看