上图来自于Love667767的博客用图
(1)策略模式通常把一系列的算法(算法等于常说的类中的方法,在这里称之为算法)包装到一系列的策略类里面。用一句话慨括策略模式就是——“将每个算法封装到不同的策略类中,使得它们可以互换”。比如说在继承关系中,子类重写算法,这就实现互换,
(2)示例:现在有不同的角色和不同的武器,每个角色只能使用一个武器,但是可以在游戏中换武器。
实现:
Charactor(角色)是抽象类,是由具体的角色来继承,具体的角色有King,Queen,Knight,Troll(妖怪),Weapon(武器)是接口,由具体的武器继承,所有的角色和武器都是具体类,任何角色想要换武器,可以调用setWeapon()方法,在打斗(fight)中,会调用到目前武器的useWeapon()方法,攻击其他角色。
(3)可以根据上图编辑代码
角色:
p