策略模式的特点就是高内聚,低耦合。下面我也来设计一个适合策略模式的场景,有一种游戏大家应该都比较熟悉,规则是一个人根据拿到的成语比划,另一个人来猜这个成语是什么。
一、首先,这些词都属于一类可以比划的词吧,那我们可以把这类词写成一个接口,如:
public interface IIdiom {
public void exute();
}
二、然后就是每个词要执行具体的动作,如:
public class First implements IIdiom{
public void exute(){
System.out.print("学狗叫");
}
}
public class Second implements IIdiom{
public void exute(){
System.out.print("学猫叫");
}
}
public class Third implements IIdiom{
public void exute(){
System.out.print("学鸡叫");
}
}
三、我们可以将这些词放在一个盒子里,拿到哪个执行哪个,如:
class Box{
public IIdiom iidiom;
public Box(IIdiom strategy){
this.iidiom = strategy;
}
public void exute(){
this.iidiom.exute();
}
}
四、开始游戏
class exuteActivity{
public static void main(String [] args){
Box box;
box = new Box(new First());//比划第一个词
box = new Box(new Second());//比划第二个词
box = new Box(new Third());//比划第三个词
box.exute();
}
}
本文通过成语比划游戏实例介绍了策略模式的设计思想。首先定义了一个成语接口,接着实现了多个具体成语类,最后通过盒子类来选择并执行不同的成语比划动作,展示了策略模式的灵活性。


7290

被折叠的 条评论
为什么被折叠?



