天天看点

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原则。

继续阅读