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