随笔分类 - 设计模式笔记
摘要:观察者模式的UML类图入下 : 解决的问题 : 解耦,参考QT的信号槽机制 详细描述: 一个通知者有一份观察者的名单,通知者状态改变时,去名单上通知所有的观察者 注意点: 通常开发中update()方法的名字不是固定的,会很不方便,C#有事件委托机制 c++中建议使用sigslot或sigc++等信
阅读全文
摘要:模板方法模式的UML类图入下 : 解决的问题 : 一些方法通用,但子类重写了很多次 优雅的复用代码 详细描述: 通用的方法抽出来到父类实现,特殊的行为在子类重写 注意点: 模板方法通常会加 final 例子: 发生告警时,不同的告警(如摄像头告警和车辆告警)有相同的方法,如生成告警记录,告警等级提升
阅读全文
摘要:菜鸟教程连接https://www.runoob.com/design-pattern/decorator-pattern.html UML类图入下 : 在Java的IO流的类图 解决的问题 : 想给一个类扩展功能,但是不想继承 可以动态扩展功能,撤消功能(不知到体现在哪里) 需要给已有的类扩展功能
阅读全文
摘要:UML类图入下 : 解决的问题 : 减少代码中的 if else 语句 简化了单元测试 不同算法独自成类,可以分别进行测试 注意点: 可以用简单工厂结合策略模式 算法对象接口为Alorithm.hpp #ifndef _ALGORITHM_H_ #define _ALGORITHM_H_ class
阅读全文
摘要:UML类图入下 : 解决的问题 : 解决了对象创建问题 被生产的对象接口为BaseAnimal #ifndef __BASEANIMAL_HPP_ #define __BASEANIMAL_HPP_ #include <string> using namespace std; class BaseA
阅读全文