- 設計模式分類
- 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("孫夫人斷後,阻擋追兵");
}
}