Boolan C++設(shè)計(jì)模式第一周心得筆記

本周筆記分為兩個(gè)部分:一為課程重點(diǎn)筆記,二為關(guān)于作業(yè)的思考

第一部分:課程重點(diǎn)筆記

首先 什么是設(shè)計(jì)模式:

軟件設(shè)計(jì)的金科玉律:復(fù)用


以下整理了面向?qū)ο笤O(shè)計(jì)的幾大原則:

1、依賴(lài)倒置原則

2、開(kāi)放封閉原則


3、單一職責(zé)原則


4、替換原則


5、接口隔離原則


6、優(yōu)先使用對(duì)象組合原則


7、封裝變化點(diǎn)


8、針對(duì)接口編程


設(shè)計(jì)模式的分類(lèi):



對(duì)于代碼的重構(gòu),有以下幾種關(guān)鍵的技法:


一、template Method



二、Strategy


三、Observer觀(guān)察者模式


四、Bridge橋模式


第二部分:作業(yè)

本周作業(yè)題目如下:

考慮一個(gè)文件分割器的設(shè)計(jì)。MainForm為界面類(lèi),收集用戶(hù)輸入的文件路徑,和分割數(shù)量。FileSplitter為實(shí)現(xiàn)文件分割的類(lèi)型。其中Split( )實(shí)現(xiàn)文件分割算法。

1.要求為Split( )支持多種文件分割算法(至少3種),在MainForm中靈活切換多種算法。

2.在Split( )分割過(guò)程中,實(shí)現(xiàn)對(duì)進(jìn)度條的實(shí)時(shí)通知,即對(duì)progressBar的賦值。

3.使用松耦合面向?qū)ο笤O(shè)計(jì)方法和思想,無(wú)需編寫(xiě)具體算法實(shí)現(xiàn),可使用偽碼表示設(shè)計(jì)。

思考:

首先,作業(yè)要求支持多種文件分割算法,可以靈活切換。根據(jù)本周課程內(nèi)容,與所講的策略模式相符合。

其次,要求可以實(shí)現(xiàn)對(duì)進(jìn)度條的實(shí)時(shí)通知,對(duì)progressBar進(jìn)行賦值。與所講的觀(guān)察者模式貼合。

嗯,再?gòu)?fù)習(xí)一遍策略模式和觀(guān)察者模式吧....

策略模式詳解代碼如下:

···

class TaxStrategy{

public:

virtual double Calculate(const Context& context)=0;

virtual ~TaxStrategy(){}

};

class CNTax : public TaxStrategy{

public:

virtual double Calculate(const Context& context){

//***********

}

};

class USTax : public TaxStrategy{

public:

virtual double Calculate(const Context& context){

//***********

}

};

class DETax : public TaxStrategy{

public:

virtual double Calculate(const Context& context){

//***********

}

};

//擴(kuò)展

//*********************************

class FRTax : public TaxStrategy{

public:

virtual double Calculate(const Context& context){

//.........

}

};

class SalesOrder{

private:

TaxStrategy* strategy;

public:

SalesOrder(StrategyFactory* strategyFactory){

this->strategy = strategyFactory->NewStrategy();

}

~SalesOrder(){

delete this->strategy;

}

public double CalculateTax(){

//...

Context context();

double val =

strategy->Calculate(context); //多態(tài)調(diào)用

//...

}

};

···

在詳細(xì)了解了策略模式后,將策略模式與觀(guān)察者結(jié)合起來(lái)就可以完成本周作業(yè)

搞定!

最后編輯于
?著作權(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)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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