9.3完全解耦(策略模式)

直接上代碼

import java.util.Arrays;

class Processor {
    public String name() {
        return getClass().getSimpleName();
    }

    Object process(Object input) {return input;}
}

class Upcase extends Processor {
    String process(Object input) {
        return ((String)input).toUpperCase();
    }
}

class Downcase extends Processor {
    String process(Object input) {
        return ((String)input).toLowerCase();
    }
}

class Splitter extends Processor {
    String process(Object input) {
        return Arrays.toString(((String)input).split(" "));
    }
}

public class Apply {

    public static void process(Processor p, Object s) {
        System.out.println("Using Processor ----> " + p.name());
        System.out.println(p.process(s));
    }

    public static String s = "Disagreement with beliefs is by definition incorrect";
    //恒定不變的部分

    public static void main(String[] args) {
        process(new Upcase(), s);
        process(new Downcase(), s);
        process(new Splitter(), s);
    }

}

輸出

Using Processor ----> Upcase
DISAGREEMENT WITH BELIEFS IS BY DEFINITION INCORRECT(全部大寫)
Using Processor ----> Downcase
disagreement with beliefs is by definition incorrect(全部小寫)
Using Processor ----> Splitter
[Disagreement, with, beliefs, is, by, definition, incorrect](按單詞分開(kāi)為數(shù)組)

Apply.process(Processor p,Object s) 方法 有兩個(gè)參數(shù),第一個(gè)參數(shù)是可變部分,第二個(gè)參數(shù)是固定不變部分。
傳入方法的第一個(gè)參數(shù),可以變化,從而帶來(lái)不同的行為(不同的處理方式)。

第二個(gè)參數(shù)
public static String s = "Disagreement with beliefs is by definition incorrect";
//恒定不變

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 只要一個(gè)方法操作的是類而非接口,那么我們就只能使用這個(gè)類及其子類了。如果想要將這個(gè)方法應(yīng)用于不在此繼承結(jié)構(gòu)中的某個(gè)...
    Enki___閱讀 1,931評(píng)論 0 0
  • 我們前面學(xué)過(guò)通過(guò)“隱藏實(shí)現(xiàn)”可以將接口與實(shí)現(xiàn)分離,然而它僅僅作為基礎(chǔ),而本章的接口以及下一章的內(nèi)部類 為我們提供了...
    whd_Alive閱讀 844評(píng)論 0 7
  • We are definitely not saying that experts cannot be helpf...
    PFisher閱讀 787評(píng)論 0 0
  • 1 毋庸置疑,謙虛是人的一種美德。 謙虛可以帶來(lái)顯而易見(jiàn)的益處。《了凡四訓(xùn)》里說(shuō)謙德之效:“由此觀之,舉頭三尺,決...
    精氣神806閱讀 287評(píng)論 0 2
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,597評(píng)論 19 139

友情鏈接更多精彩內(nèi)容