美文网首页
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); //多态调用

//...

}

};

···

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

搞定!

相关文章

  • 2018-03-22

    Boolan C++设计模式二 “对象创建”模式:通过“对象创建”模式绕开new,来避免对象创建(new)过程中所...

  • C++设计模式-第一篇 (Boolan)

    C++设计模式-第一篇 (Boolan) 本章内容:1 面向对象设计原则2 GOF-23种设计模式分类3 模板方法...

  • C++笔记第一周(Boolan)

    C++笔记第一周(Boolan) 头文件的防卫式声明: 函数在class body里定义完成则默认inline 函...

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

    本周笔记分为两个部分:一为课程重点笔记,二为关于作业的思考 第一部分:课程重点笔记 首先 什么是设计模式: 软件设...

  • C++设计模式-第三篇 (Boolan)

    C++设计模式-第三篇 (Boolan) 本章内容:1 备忘录模式2 状态模式3 组合模式4 迭代器模式5 职责模...

  • C++设计模式-第二篇 (Boolan)

    C++设计模式-第二篇 (Boolan) 本章内容:1 工厂方法模式2 抽象工厂模式3 原型模式4 构建器模式5 ...

  • 2018-03-18

    Boolan C++设计模式一 设计模式:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案...

  • 2018-03-28

    Boolan C++设计模式三 “对象性能”模式:面向对象很好的解决了“抽象”的问题,但是必不可免地要付出一定的代...

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

    本周主要讲了工厂方法、抽象工厂、原型模式、构建器、门面模式、代理模式、适配器和中介者。 工厂方法 抽象工厂 原型模...

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

    单件模式 享元模式 状态模式 备忘录 组合模式 迭代器 职责链 命令模式 访问器 解析器 本周作业 本次作业要求针...

网友评论

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

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