简单通俗设计模式之策略模式

策略模式的定义很简单,那就是根据传入的参数类型而执行不同的行为的方法。方法包含算法中不变的部分,策略包含变化的部分,实际上策略就是传入的参数对象。具体看下例子

//定义一个策略接口
public interface Processor {
    Object process(Object obj);
}

//实现一个字符串分割的策略
public class SplitStringProcessor implements Processor {
    @Override
    public String process(Object obj) {
        return Arrays.toString(((String) obj).split(" "));
    }
}

//实现一个返回字符串的策略
public class StringProcessor implements Processor {
    @Override
    public String process(Object obj) {
        return (String)obj;
    }
}

//实现一个字母都为大写的策略
public class UpperCaseStringProcessor implements Processor {
    @Override
    public String process(Object obj) {
        return ((String)obj).toUpperCase();
    }
}

//执行策略的类
public class Applicator {

    public static void apply(Processor p, Object o){
        System.out.println(p.process(o));
    }
    public static void main(String[] args) {
         String str = "We are such stuff as dreams are made on";
         Applicator.apply(new SplitStringProcessor(),str);
         Applicator.apply(new StringProcessor(),str);
         Applicator.apply(new UpperCaseStringProcessor(),str);
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章