###完成观察者模式
- 实现了两个布告板,已经足够理解观察者模式了
- 编程过程中,发现使用C++无法按照java那样去实现push的方式通知观察者更新,最后实现的是pull
- 由于C++不是纯面向对象,实现push方式有点麻烦,我没想到办法,以后想到了再补充吧
- 因为观察者对象的基类中存放了观察对象的指针,这是有点违背面向接口编程原则的吧?
- 正是因为观察者基类中存放了观察对象的指针,所以,我实现的两个布告板中获取观察对象指针的方式不一样
- 观察者的内存由可观察对象来维护
- OO基础 抽象、封装、继承、多态
- OO原则 封装变化 多用组合(has-a),少用继承(is-a) 针对接口编程,不针对实现编程
- OO模式 策略模式——定义算法簇,分别封装起来,让他们之间可以相互替换,此模型 让算法的变化独立于使用算法的客户。
- 基本完成了Head First设计模式书中的第一个模式的C++实现
- 我并没有完全实现书中的所有鸭子对象和行为对象
- 我认为目前的代码已经能够很好的体会策略模式的**,无需过多累赘代码
- 半年没有写C++代码了,代码能正确运行,基本保证没有内存泄露,但是不绝对
- 正在学习Head First设计模式一书,书中的设计模式都是用java语言实现的
- 我比较喜欢C++,就尝试将Head First中的设计模式用C++语言来实现
- 第一次接触和学习设计模式,以后会陆续更新
- 今天的更新实现了部分策略模式(Strategy Pattern)
- 开发环境是win7x64,VS2013u5
###编码规则
- 接口使用虚基类,‘I’作为名称的前缀
- 接口实现类的类名使用‘C’作为名称的前缀
- 设计模式命名空间一律使用“DesignPatterns_PatternName”
- 入口函数的名称一律使用工程名称