设计模式
文章平均质量分 83
快乐的霖霖
一个人默默的奋斗者
展开
-
23个设计模式简介
23个设计模式简介 Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 Adapter:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的哪些类可以一起工作。 Bridge:将抽象部分与它的实现部分分离,使它们都可以独立地变化。 Builder:将一个复原创 2012-03-02 19:08:39 · 883 阅读 · 0 评论 -
简单工厂模式
简单工厂模式 一,概念 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 二,实例转载 2012-09-01 11:04:42 · 1350 阅读 · 0 评论 -
策略模式
策略模式 一,概念 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 二,策略模式的组成 1)抽象策略角色: 策略类,通常由一个接口或者抽象类实现。 2)具体策略角色:包装了相关的算法和行为。 3)环境角色:持有一个策略类的引用,最终给客户原创 2012-09-01 11:38:43 · 5681 阅读 · 0 评论 -
Singleton模式中的DoubleCheck机制
Singleton模式中的DoubleCheck机制 在多线程环境下,使用Singleton模式很重要的一点就是要保证用Double Check机制保证线程安全。 很多时候, 我们通常需要使用singleton模式来保证对象实例的唯一性。通常我们是这么写的: class Singleton { private: static原创 2012-12-29 22:12:58 · 1446 阅读 · 0 评论 -
线程安全与Singleton
线程安全与Singleton 线程安全是个非常棘手的问题。即使你合理的使用了锁(lock),依然可能不会产生预期的效果。 让我们来看看貌似合理的代码 X=0; Thread 1 Thread2 lock(); lock(); x++; x++; unlock(); unlock();原创 2012-12-29 22:09:41 · 922 阅读 · 0 评论 -
reactor模式详解
reactor模式详解 1 Reactor的事件处理机制 首先来回想一下普通函数调用的机制:程序调用某函数?函数执行,程序等待?函数将结果和控制权返回给程序?程序继续处理。 Reactor释义“反应堆”,是一种事件驱动机制。和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注原创 2013-07-06 19:20:44 · 4020 阅读 · 0 评论 -
单例模式(singleton pattern)
单例模式(singleton pattern) 单例模式,顾名思义,就是只能由一个实例,那么我们就必须保证 该类不能被复制。该类不能被公开的创造。 那么对于C++来说,他的构造函数,拷贝构造函数和他的赋值函数都不能被公开调用。 但对于该私有的构造函数的构造时机上来说也可以分两种情况来构造: 只有当需要改类的时候去构造(即为转载 2013-07-25 11:19:39 · 930 阅读 · 0 评论 -
Observer模式简介
Observer模式简介 软件设计中会碰到这样的关系:一个对象依赖于另一个对象,必须根据后者的状态更新自己的状态,可以把后者称作目标对象,前者称作观察者对象。不但观察者依赖于目标,当目标的状态改变时也要通知观察者,这就出现了双向的依赖。两个对象互相依赖的后果是它们必须一起复用。如果一个目标有多个观察者,那么目标也依赖所有观察者,从而目标对象无法独立复用。如何消除目标和观察者之间的互相原创 2013-06-06 10:33:59 · 1550 阅读 · 0 评论 -
用c++进行设计模式的解析和实现
用c++进行设计模式的解析和实现 这次花些时间好好学习下设计模式,利用c++将每个设计模式都实现一遍。 参考资料: 1. > 2. http://itlab.idcquan.com/c/special/sjms/Index.html#a原创 2015-03-26 01:03:02 · 1000 阅读 · 0 评论