Design Patterns
量子孤岛
90后嵌入式工程师,喜欢写作、读书。希望通过文字和大家共同进步!
展开
-
Decorator设计模式
Decorator动机(Motivation)在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀。如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何“功能扩展变化”所导致的影响...原创 2019-06-07 09:31:30 · 303 阅读 · 0 评论 -
设计模式分类与面向对象设计原则
C++设计模式什么是设计模式“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。——Christopher Alexander如何解决复杂性?分解人们面对复杂性有一个常见的做法:即分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题。抽象更高层次来讲,人们处理复杂性有一个通用...原创 2019-06-02 10:20:06 · 178 阅读 · 0 评论 -
Strategy设计模式
程序的复用性是二进制层面的复用,而不是代码的复制粘贴Strategy动机(Motivation)在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题?模式定义定义一系列算法,把它们一个个封装起来...原创 2019-06-03 23:16:01 · 182 阅读 · 0 评论 -
Observer设计模式
Observer/Event动机(Motivation)在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。模式定义定义对象间的一种一对多(...原创 2019-06-05 08:51:51 · 199 阅读 · 0 评论 -
c++的单例模式的一种写法以及多线程安全问题
单例模式// 单例设计模式class sigleC {public: static sigleC* getInstance() { if (m_instance == nullptr) { m_instance = new sigleC(); static delobj cl; // } return m_instance; } // 通过嵌套类来实现析构...原创 2019-08-29 18:42:38 · 442 阅读 · 0 评论