美文网首页
Boolan C++设计模式第一周心得笔记

Boolan C++设计模式第一周心得笔记

作者: kwangxn | 来源:发表于2017-09-26 22:53 被阅读0次

    本周笔记分为两个部分:一为课程重点笔记,二为关于作业的思考

    第一部分:课程重点笔记

    首先 什么是设计模式:

    软件设计的金科玉律:复用

    以下整理了面向对象设计的几大原则:

    1、依赖倒置原则

    2、开放封闭原则

    3、单一职责原则

    4、替换原则

    5、接口隔离原则

    6、优先使用对象组合原则

    7、封装变化点

    8、针对接口编程

    设计模式的分类:

    对于代码的重构,有以下几种关键的技法:

    一、template Method

    二、Strategy

    三、Observer观察者模式

    四、Bridge桥模式

    第二部分:作业

    本周作业题目如下:

    考虑一个文件分割器的设计。MainForm为界面类,收集用户输入的文件路径,和分割数量。FileSplitter为实现文件分割的类型。其中Split( )实现文件分割算法。

    1.要求为Split( )支持多种文件分割算法(至少3种),在MainForm中灵活切换多种算法。

    2.在Split( )分割过程中,实现对进度条的实时通知,即对progressBar的赋值。

    3.使用松耦合面向对象设计方法和思想,无需编写具体算法实现,可使用伪码表示设计。

    思考:

    首先,作业要求支持多种文件分割算法,可以灵活切换。根据本周课程内容,与所讲的策略模式相符合。

    其次,要求可以实现对进度条的实时通知,对progressBar进行赋值。与所讲的观察者模式贴合。

    嗯,再复习一遍策略模式和观察者模式吧....

    策略模式详解代码如下:

    ···

    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){

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

    }

    };

    //扩展

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

    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); //多态调用

    //...

    }

    };

    ···

    在详细了解了策略模式后,将策略模式与观察者结合起来就可以完成本周作业

    搞定!

    相关文章

      网友评论

          本文标题:Boolan C++设计模式第一周心得笔记

          本文链接:https://www.haomeiwen.com/subject/nmoeextx.html