设计模式
一缕阳光a
(1)、从2018年8月开始从事分布式数据库内核开发工作,包括自研分布式分析型数据库OLAP、自研分布式数据库HTAP,根据开源数据库实现本公司集群型的OLTP产品,以及现在正在做的根据opengaussDB开发的HTAP类型数据库。
(2)、乐于专研,对分布式数据库有强烈的兴趣。
个人邮箱: zgaoq@163.com。
展开
-
单例模式的2种写法
// sample 1class Singleton {public: static Singleton& getInstance() { static Singleton instance; return instance; } Singleton(const Singleton& src) = delete; Singleton& operat...原创 2019-12-14 17:38:48 · 139 阅读 · 0 评论 -
生产者-消费者模式的实现
// 生产者-消费者模式 无锁队列get()时,如果deque里面没有元素了,则会一直阻塞,还有待改进的空间template <class T>class BlockingQueue {public: explicit BlockingQueue() : shutdown_(false) {} ~BlockingQueue() {} ...原创 2019-12-14 17:30:34 · 96 阅读 · 0 评论 -
C++ 线程安全的单例模式
转载:https://www.cnblogs.com/ccdev/archive/2012/12/19/2825355.html废话不多说,常用的代码积淀下来。一、懒汉模式:即第一次调用该类实例的时候才产生一个新的该类实例,并在以后仅返回此实例。需要用锁,来保证其线程安全性:原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety.转载 2018-01-23 13:40:25 · 293 阅读 · 0 评论 -
设计模式之单一职责原则
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T原创 2017-06-13 16:32:22 · 251 阅读 · 0 评论 -
设计模式的理解的总结
参考的博客:http://blog.csdn.net/wangeen/article/details/8272501最近又把设计模式翻了一边,写个个人总结,这个总结比较简单,主要是一些理解,对于他们的实现和应用以后再总结设计模式是编程抽象化的一个具体的应用,它让程序更好的阅读和理解,逻辑上更加合理,是通向更大规模软件的一个基础,换个说法,如果一个软件的模式很混乱那么它混转载 2017-05-19 18:20:56 · 354 阅读 · 0 评论 -
设计模式之适配器模式
转载地址:http://blog.csdn.net/lh844386434/article/details/17928331适配器模式属于结构型的设计模式,它是结构型设计模式之首(用的最多的结构型设计模式)。适配器设计模式也并不复杂,适配器它是主要作用是将一个类的接口转换成客户希望的另外一个接口这样使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式有两种:1.转载 2017-04-11 11:53:59 · 331 阅读 · 0 评论 -
Android中常见的MVC/MVP/MVVM模式
Android中常见的MVC/MVP/MVVM模式经典MVC在1979年,经典MVC模式被提出。在当时,人们一直试图将纯粹描述思维中的对象与跟计算机环境打交道的代码隔离开来,而Trygve Reenskaug在跟一些人的讨论中,逐渐剥离出一系列的概念,最初是Thing、Model、View、Editor。后来经过讨论定为Model、View和Controller。作者自言“转载 2017-03-09 14:30:10 · 267 阅读 · 0 评论 -
单例模式(Java)
该单例模式考虑到了 "双检锁"的情况单例模式只有一个实例,节省了资源,提高了效率。public class Singleton { private Singleton() {} private volatile static Singleton instance; public static Singleton getInstance() { if (原创 2017-01-18 14:39:24 · 328 阅读 · 0 评论 -
观察者模式Observer
初学java的观察者模式,今天总结了下,希望指正。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。 所谓观察者模式,举个例子现在许多购房者都密切观察者房价的变化,当房价变化时,所有购房者都能观察到,以上的购房者属于观察者,这便是观察者模式。 J原创 2017-02-09 18:42:20 · 177 阅读 · 0 评论 -
单例模式(C++)
其他写法的单例模式就不多说了,主要说下多线程同时执行的情况下的单例模式。为了多线程执行时的安全性,该单例模式使用了锁的机制,防止数据一边在“读”,一边在“写”,导致数据不完整。在本人做的一个海外的项目时就遇到了这个问题,当时查了很久,熬了2个通宵,最后查到是多线程并发执行时对数据库中的数据没有加锁同步导致的。跑题了,接着下面讲述C++中的单例模式的使用。单例模式只有一个实例原创 2017-01-19 11:28:38 · 231 阅读 · 0 评论 -
简单工厂模式+工厂方法模式
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部转载 2017-01-18 15:50:01 · 298 阅读 · 0 评论 -
责任链模式
设计模式是前人、大牛等在实际编程中对遇到的问题解决方案的抽象。描述:将多个对象连成一条链,并沿着这条链传递请求,直到有对象处理它。应用:程序运行时抛出异常,该异常会一直向上抛出直到遇到处理它的代码为止。1.责任链模式在编程中的小体现,看下面的情况 switch (a) { case 1: //... break; case 2: //...原创 2017-01-18 18:38:18 · 324 阅读 · 0 评论 -
生产者-消费者模式
在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产转载 2017-01-18 19:36:20 · 298 阅读 · 0 评论