日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Template method pattern 模板方法模式

 孫中熙——路 2012-02-16
Template method pattern 模板方法模式
2010-05-14 16:57

Template method pattern 模板方法模式。

它是多態(tài)技術(shù)的一種應(yīng)用。代碼如下,

abstract class MyTemplate{
    abstract void step1();
    abstract void step2();
    abstract void step3();

    /**
     * 這就是模板。被子類共用。
     */
    final void TemplateMethod(){
step1();
step2();
step3();
    }
}

子類(略)。

所有子類會共用模板方法。不同子類對抽象方法的實現(xiàn)不同,但大的藍(lán)圖并未改
變。戰(zhàn)役的方式不同,戰(zhàn)略并未受到影響?;蛘哒f,大的戰(zhàn)略制定下來,小的戰(zhàn)
役你們自己看著辦就行。

架子是怎么搭起來的?架子就是這么搭起來的。架構(gòu)師是做什么的?架構(gòu)師就是
搭架子的人。

常說的I call you 而不是 You call me 就表現(xiàn)于此。子類的編寫者不用考慮去
調(diào)用某個算法方法,只需要關(guān)注實現(xiàn)自己的方法,自然就會被更高一級的方法調(diào)
用。

模板方法也可以看是個大的算法架子,算法的具體步驟被子類來實現(xiàn)。
Stragegy模式也是跟算法有關(guān)的模式,這里比較它們一下。

Stragegy模式是做一件事情有多種算法實現(xiàn),這種被實現(xiàn)推遲到子類里實現(xiàn)。
Template模式是算法已經(jīng)確定,而實現(xiàn)步驟的細(xì)節(jié)被推遲到子類里實現(xiàn)。

Strategy 代碼如下,

interface Strategy {
    int execute(int a, int b);
}

class Context {
    private Strategy strategy;
    // Constructor
    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    public int executeStrategy(int a, int b) {
        return strategy.execute(a, b);
    }
}


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多