/HeadFirstDesignPattensCpp

Head First · Design Patterns · Cpp Implement

Primary LanguageC++

Head First · Design Patterns · C++ Implement

v1.2

###完成观察者模式

  • 实现了两个布告板,已经足够理解观察者模式了
  • 编程过程中,发现使用C++无法按照java那样去实现push的方式通知观察者更新,最后实现的是pull
  • 由于C++不是纯面向对象,实现push方式有点麻烦,我没想到办法,以后想到了再补充吧
  • 因为观察者对象的基类中存放了观察对象的指针,这是有点违背面向接口编程原则的吧?
  • 正是因为观察者基类中存放了观察对象的指针,所以,我实现的两个布告板中获取观察对象指针的方式不一样
  • 观察者的内存由可观察对象来维护

v1.0

总结

  • OO基础 抽象、封装、继承、多态
  • OO原则 封装变化 多用组合(has-a),少用继承(is-a) 针对接口编程,不针对实现编程
  • OO模式 策略模式——定义算法簇,分别封装起来,让他们之间可以相互替换,此模型 让算法的变化独立于使用算法的客户。

v0.8

策略模式完成

  • 基本完成了Head First设计模式书中的第一个模式的C++实现
  • 我并没有完全实现书中的所有鸭子对象和行为对象
  • 我认为目前的代码已经能够很好的体会策略模式的**,无需过多累赘代码
  • 半年没有写C++代码了,代码能正确运行,基本保证没有内存泄露,但是不绝对

v0.2

Head First · Design Patterns · C++ Implement

  • 正在学习Head First设计模式一书,书中的设计模式都是用java语言实现的
  • 我比较喜欢C++,就尝试将Head First中的设计模式用C++语言来实现
  • 第一次接触和学习设计模式,以后会陆续更新
  • 今天的更新实现了部分策略模式(Strategy Pattern)
  • 开发环境是win7x64,VS2013u5

v0.0

###编码规则

  • 接口使用虚基类,‘I’作为名称的前缀
  • 接口实现类的类名使用‘C’作为名称的前缀
  • 设计模式命名空间一律使用“DesignPatterns_PatternName”
  • 入口函数的名称一律使用工程名称