簡單通俗設計模式之策略模式

策略模式的定義很簡單,那就是根據傳入的參數類型而執行不同的行爲的方法。方法包含算法中不變的部分,策略包含變化的部分,實際上策略就是傳入的參數對象。具體看下例子

//定義一個策略接口
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);
    }
}

 

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