策略模式(think in java中的设计模式)

策略模式:策略模式类似于状态模式。也是通过多态表现的一种设计模式。区别在于状态模式讲究的是行为状态为主题,讲究不同对象的不同行为。策略模式则是以服务对象为主题,讲究对同一个对象使用不同的服务。

public class Test {
    public static void main(String[] args){
        String s="Hello world";
        A a1=new B();
        A a2=new C();
        D d=new D();
        d.setA(a1);
        d.say(s);
        d.setA(a2);
        d.say(s);
        
    } 
}
class A{
    public void say(String s){
        System.out.println(s);
    };
}
class B extends A{
public void say(String s){
        System.out.println(s.toUpperCase());
    };
}
class C extends A{
public void say(String s){
    System.out.println(s.toLowerCase());
    };
}
class D{
    private A a=null;
    public void setA(A a2){
        this.a=a2;
    }
    public void say(String s){
        this.a.say(s);
    }
}

最终输出为:

HELLO WORLD
hello world

其中D为环境角色,A为抽象策略角色,BC为具体策略角色。。

环境配置好之后把不同的A类带入D中使用同样的方法达到效果

 

posted @ 2017-06-21 09:55  酒皇  阅读(158)  评论(0编辑  收藏  举报