随笔分类 - 设计模式
万变不离其宗
摘要:转载请注明: https://blog.csdn.net/Stephen___Qin/article/details/115583694 使用判断nullptr (这一种不能保证线程安全,说有双重锁定检测问题,待进一步学习) #include <thread> #include <iostream>
阅读全文
摘要:(1)继承 介绍: 继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。 表示方法: 继承使用空心三角形+实线表示。 示例: 鸟类继承抽象类动物 继承关系 (2)实现 介绍: 实现表示一个class类实现interface接口(可以是多个)
阅读全文
摘要:看到项目下面有个Plugin文件夹,然后Plugin文件夹下定义了IExtensionPoint的接口类,看到网上有类似的文章. http://www.blogjava.net/yangbutao/archive/2007/09/27/148500.html
阅读全文
摘要:这个里面介绍的比较细致。 说到组合时,一个对象中包含另一个类对象的情况被称为组合。 比如 class A; class B //组合对象 { public: A a; //被组合对象 } 说被组合对象和组合对象有着相同的生命周期,被组合对象是在组合对象创建的同时或者之后创建的,在组合对象销毁之前销毁
阅读全文
摘要:今天读到了<First Head设计模式>装饰器这一章,对文中一开始的例子比较感兴趣.文中介绍了一个咖啡售卖系统如何设计的问题.一开始是通过设计一个基类来计算所用的调料的价格,而用子类来计算特定品种的整体价格. 这里面比较感兴趣的是文中有一个子类的实现: 在子类中直接通过父类名::方法来调用父类的方
阅读全文
摘要:原文链接:https://www.jianshu.com/p/c2dede157c5a 什么是重构? 在我进行了一次相对完整的代码重构之前,没有系统地学习过重构的整体要求与细节要求,所以,我的这次代码重构是在非客观性的条件下进行的,可能是我自己意识到原来的代码可读性很低,或者发现了有很多的地方是值得
阅读全文
摘要:1.C++11中的线程,生产者和消费者模式 2.多线程中同步的方法 互斥量,信号量,条件变量,读写锁; 3.设计模式中的简单工厂和工厂方法和抽象工厂 4.快速排序的原理,如何判定一个排序算法是稳定的 5.单例模式如何实现的 #include <iostream> using namespace st
阅读全文
摘要:生产者消费者模式并不是GOF提出的23种设计模式之一,23种设计模式都是建立在面向对象的基础之上的,但其实面向过程的编程中也有很多高效的编程模式,生产者消费者模式便是其中之一,它是我们编程过程中最常用的一种设计模式。 在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个
阅读全文
摘要:一.引入 二.template method(模板方法) 代码示例: 一开始的代码: template1_app.cpp: 对应的库的代码: template1_lib.cpp: 这里的主体程序流程,实际上框架开发者已经设计好了,常常是稳定的. 因此更好的解决方案是,库开发者把流程写好,一些需要开发
阅读全文
摘要:整理自李建忠<C++设计模式>视频:https://www.bilibili.com/video/BV1kW411P7KS?p=8 一.导入:"对象创建"模式和工厂模式 工厂模式只是该模式下的一种. 二.举例说明 有这样一个场景:需要在MainForm中设计一个按钮,这个按钮具有文件分割的功能,支持
阅读全文