策略模式
定义算法族,分别封装起来,让他们可以相互替换,此模式让算法的变化独立于使用算法的客户。
以下以一个动作冒险游戏举例。游戏中有不同的角色,不同的角色使用不同的武器,一次只能使用一种武器,但是可以切换武器(想到了大菠萝?)。
- Character为抽象类,实现setWeapon()方法。
- King, Queen, Knight, Troll继承Character,通过setWeapon()切换武器
- 在打斗过程中,调用当前武器的useWeapon()方法,攻击其他角色
- 所有的实际角色与武器行为为具体类