1.設(shè)計(jì)模式入門-策略模式

《HEAD FIRST 設(shè)計(jì)模式》在第一章設(shè)計(jì)模式入門中介紹了策略模式(Strategy Pattern)笛厦。

定義


策略模式定義了算法族任内,分別封裝起來(lái),讓它們之間可以互相替換,此模式讓算法的變化獨(dú)立于使用算法的客戶苫幢。

類圖


策略模式

抽象類strategy作為接口定義歇僧。strategy_1和strategy_2分別實(shí)現(xiàn)了兩種具體的策略图张。用戶User可通過set方法設(shè)置策略锋拖。

代碼


//策略接口:strategy.h
class strategy_interface
{
    vitual void algorithm() = 0;
} ;

class strategy_1: public strategy_interface
{
    void algorithm();
};

class strategy_2: public strategy_interface
{
    void algorithm();
};
// strategy.cpp
#include <stdio.h>
void strategy_1::algorithm()
{
    printf("this is strategy_1\n");
}

void strategy_2::algorithm()
{
    printf("this is strategy_2\n");
}
// user.h
class strategy_interface;
class user
{
    public:
        void Algorithm();
        void set_strategy(strategy_interface* ptr);
    private:
        strategy_interface* s_ptr;
};
// user.cpp
include "strategy.h"
void user::Algorithm()
{
    if (s_ptr !=  NULL) s_ptr->algorithm();
    else printf("no strategy for user\n");
}

void user::set_strategy(strategy_interface* ptr)
{
    s_ptr = ptr;
}

筆記


1.把變化的部分取出并封裝起來(lái),以便以后可以輕易地改動(dòng)或擴(kuò)充此部分祸轮,而不影響不需要變化的其他部分兽埃。
2.多用組合,少用繼承适袜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末柄错,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子苦酱,更是在濱河造成了極大的恐慌售貌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疫萤,死亡現(xiàn)場(chǎng)離奇詭異颂跨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)扯饶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門恒削,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人尾序,你說(shuō)我怎么就攤上這事钓丰。” “怎么了每币?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵携丁,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我兰怠,道長(zhǎng)则北,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任痕慢,我火速辦了婚禮尚揣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘掖举。我一直安慰自己快骗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布塔次。 她就那樣靜靜地躺著方篮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪励负。 梳的紋絲不亂的頭發(fā)上藕溅,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音继榆,去河邊找鬼巾表。 笑死汁掠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的集币。 我是一名探鬼主播考阱,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鞠苟!你這毒婦竟也來(lái)了乞榨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤当娱,失蹤者是張志新(化名)和其女友劉穎吃既,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跨细,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡态秧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扼鞋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡愤诱,死狀恐怖云头,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情淫半,我是刑警寧澤溃槐,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站科吭,受9級(jí)特大地震影響昏滴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜对人,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一谣殊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧牺弄,春花似錦姻几、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至咱台,卻和暖如春络拌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背回溺。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工春贸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留混萝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓祥诽,卻偏偏與公主長(zhǎng)得像譬圣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雄坪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1 場(chǎng)景問題# 1.1 報(bào)價(jià)管理## 向客戶報(bào)價(jià)厘熟,對(duì)于銷售部門的人來(lái)講,這是一個(gè)非常重大维哈、非常復(fù)雜的問題绳姨,對(duì)不同的...
    七寸知架構(gòu)閱讀 5,081評(píng)論 9 62
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,167評(píng)論 25 707
  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情阔挠,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式飘庄。簡(jiǎn)單...
    舟漁行舟閱讀 7,769評(píng)論 2 17
  • 我想說(shuō)不管琦琦做什么我都會(huì)陪著她保護(hù)她 人生有很多想得通的不得已和想不通的難以自持 說(shuō)長(zhǎng)也不長(zhǎng)說(shuō)短也不短得人生 ...
    茵陳_閱讀 153評(píng)論 0 0
  • 眾所周知,我在學(xué)校工作 可現(xiàn)在的中學(xué)里頭的女孩子 和過去不同了购撼,真不同了 她們把年紀(jì)掩藏在校服底下 而后呢跪削?我是說(shuō)...
    孫陸辰閱讀 629評(píng)論 2 0