天天看點

23種設計模式之政策模式

  • ​​設計模式分類​​
  • ​​uml類圖​​
  • ​​優點​​
  • ​​政策模式優點高内聚低耦合符合ocp原則​​

重點内容

1.設計模式分類:

建立型,結構型,行為型。政策模式屬于 行為型。

2.uml類圖

3.優點

(上uml 類圖)

23種設計模式之政策模式

個人認為:政策模式好像是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("孫夫人斷後,阻擋追兵");
    }

}      

政策模式優點:高内聚,低耦合,符合ocp原則。

繼續閱讀