设计模式
文章平均质量分 50
qingfeng_happy7
这个作者很懒,什么都没留下…
展开
-
设计模式-简单工厂
class CDataBase { public: CDataBase() { } virtual ~CDataBase() { } virtual void Connect()=0; }; class CMysqlDataBase :public CDataBase { public: CMysqlDataBase()原创 2016-01-10 19:21:41 · 304 阅读 · 0 评论 -
设计模式-工厂方法模式
用途:创建对象 优点:集中创建对象;将对象的创建与使用分离;实现了对扩展开放,对修改封闭的原则 缺点:每个对象都得有一个对应的工厂类,容易引起类膨胀。 class CFactoryMethod { public: CFactoryMethod() { } virtual ~CFactoryMethod() { } vir原创 2016-01-10 20:07:07 · 304 阅读 · 0 评论 -
设计模式-单例模式
用处:适用于整个程序只有唯一一个对象的情况 优点:确保无论用户如何调用,创建的都是唯一的一个对象 缺点: class CSingleTon { public: static CSingleTon *m_pInstance; static CSingleTon * GetInstance(); void TestOut {原创 2016-01-10 20:34:14 · 271 阅读 · 0 评论 -
设计模式-原型模式
用途:根据旧对象创建相同的对象 优点:使用拷贝构造函数实现,支持深拷贝 缺点: class CProtoType { public: CProtoType():m_nNum(0) { } ~CProtoType(); CProtoType* Clone() { CProtoType* pNewObj=new CP原创 2016-01-10 21:05:31 · 336 阅读 · 0 评论 -
设计模式-Bridge模式
使用场景: 如果一个类只有一种维度的变化,则使用继承模式,通过派生子类的方式可以很容易实现特定的抽象接口。可是如果类对象有超过1个维度的变化,此时通过继承就很难实现了。例如,画图操作,既可以绘制长方形、圆形,也可以绘制在Doc、PDF上,线条颜色既可以是红色,也可以是绿色等。对于类似这种关联度不大的变化,很难用继承处理。较好的处理方式是组合。通过组合将抽象接口与实现分类开,使得抽象接口和实现可以原创 2016-01-11 10:31:18 · 424 阅读 · 0 评论 -
设计模式-Adapter模式
适用场景举例: 开发中需要使用一个第三方的库,可是第三方库的接口无法修改,而且接口与现有的设计接口不一致。为了达到一致的效果,可以在现有的类结构中派生一个子类,在该子类中对第三方的库接口做一下包装,这样就可以实现一致的调用接口了。 模式比较简单,代码略。原创 2016-01-11 11:45:54 · 416 阅读 · 0 评论 -
设计模式-Decorator模式
适用场景举例: 对于一个已经设计好并投入适用的类,由于需求变更导致需要扩展类的接口。为了不违背开闭原则,可以采用继承或组合的方式实现多现有接口的扩充。 装饰者模式的特点是采用组合的方式实现新接口的添加。 class CDecorator:public CShape { public: typedef shared_ptrCShape>ShapePtr; CDeco原创 2016-01-11 12:22:48 · 430 阅读 · 0 评论