首页 > 代码库 > 策略模式
策略模式
昨天晚上看了<<head first 设计模式>>中文版, 看了第一个设计模式,我故意没把他看完, 只看了书中所说场景遇到的一些问题.
书中场景要设计一个鸭子, 采用了两种方法.
1.设计一个父类, 让所有的子类都继承这个父类, 然后各子类重写父类中的一些方法, 从而使各个不同的鸭子具有不同的特性.
但是这种方法有个问题, 例如, 父类中定义fly()方法, 但并不是所有的鸭子都会飞, 例如橡皮鸭.因此在橡皮鸭这个类中, 重写父类的fly()方法, 让这个方法什么也不做, 这样就使得橡皮鸭不会飞了.
如果以后还有别的鸭子不会飞, 都需要重写父类中的fly()方法, 导致代码出现重复.因此这个方法并不是很好的一个方法
2.设计一个父类,父类中只定义鸭子通用的一些方法. 然后定义flyable接口. 会飞的鸭子都实现该接口.
这样设计以后, 出现了更多的代码重复. 因为大部分鸭子都是会飞的, 只有少部分鸭子不会飞. 这样很多鸭子都得实现这个接口, 出现更多的重复工作.如何设计才能避免代码重复, 并且具有很大的灵活性呢?
....
策略模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。