- 设计模式分类
- uml类图
- 优点
- 策略模式优点高内聚低耦合符合ocp原则
重点内容
1.设计模式分类:
创建型,结构型,行为型。策略模式属于 行为型。
2.uml类图
3.优点
(上uml 类图)
个人认为:策略模式好像是switch,给定不同的策略,执行不同策略路径。也就是一个泛型的使用
具体源码:
ZhaoYunMain 类
package strategy;
/**
*
* @author weichyang
*
*/
public class ZhaoYunMain {
public static void main(String[] args) {
System.out.println("赵云遇到难题,无法解决。并打开第一个锦囊");
new Context(new FirstStrategy()).operator();
System.out.println("赵云遇到难题,无法解决。并打开第二个锦囊");
new Context(new SecondStrategy()).operator();
System.out.println("赵云遇到难题,无法解决。并打开第三个锦囊");
new Context(new ThreeStrategy()).operator();
}
}
策略接口 Istrategy
package strategy;
public interface Istrategy {
void operator();// 锦囊中秘密
}
Context 类
package strategy;
/**
* 锦囊类包装策略接口
*
* @author weichyang
*
*/
public class Context {
private Istrategy istrategy;
public Context(Istrategy istrategy) {
this.istrategy = istrategy;
}
/**
* 操作
*/
public void operator() {
istrategy.operator();
}
}
锦囊FirstStrategy 类
public class FirstStrategy implements Istrategy {
@Override
public void operator() {
System.out.println("找乔国老帮忙,让吴国太给孙权施加压力");
}
}
锦囊2 SecondStrategy 类
package strategy;
public class SecondStrategy implements Istrategy {
@Override
public void operator() {
System.out.println("找求吴国太开个绿灯,放行!");
}
}
package strategy;
public class ThreeStrategy implements Istrategy {
@Override
public void operator() {
System.out.println("孙夫人断后,阻挡追兵");
}
}