策略模式(Strategy Pattern)

例子: 一个游戏中有各种鸭子,红头鸭,绿头鸭等等,很自然得出这样的设计: 这时,需求改变了(永远不变的是改变).游戏需要鸭子能飞起来, 在抽象的Duck类中加入一个方法fly(),是一个很自然的想法. 但是,问题出现了,一些不能飞的鸭子(比如橡皮鸭)也飞了起来.——继承带来的问题:牵一发而动全身 我们可以找到一个暂时的办法:覆盖橡皮鸭的fly()方法,使这个方法什么也不做。然而随着鸭子的数量的增加
相关文章
相关标签/搜索