Design Pattern
文章平均质量分 78
木头云
这个作者很懒,什么都没留下…
展开
-
C++设计模式之Singleton(单件/单例)模式
单例模式,顾名思义,此模式下的对象实例永远只有一个.很多初学者感觉,这个模式的用处不大.但实际上,这个模式应该算是应用得最广泛的模式之一了.很多情况下,我们需要考虑单例的实现方式.如全局内存池;全局资源管理器;某个全局的工具类工厂...在UI开发上,同一时间点上仅会出现一个实例的对话框,也可以使用单例实现.原创 2011-02-26 19:05:00 · 2749 阅读 · 4 评论 -
C++设计模式之前言
我个人接触设计模式的时间较晚,将它们应用在实际项目中也就这一两年的时间.当时为了快速的学习掌握设计模式,除了参考GoF的之外,还在网上参看了TerryLee的.NET设计模式系列文章,以及程杰的,并利用业余时间写了不少C++的例子.此时将它们一一整理发出来,也可以说是对自身的一次总结吧.原创 2011-02-12 16:49:00 · 1459 阅读 · 1 评论 -
C++设计模式之Factory(工厂)模式
工厂模式一般是学习设计模式的第一课,它本身也是创建型模式中较为常用的一种模式.工厂模式希望解决的是"如何高效而方便的创建当前需要的对象"的问题.当一个对象对外提供的接口稳定,而这类对象的具体实现容易发生变化时,我们可以考虑使用工厂来封装对象的实现变化,并提供统一的对象创建方法.工厂模式可以分为三种不同的模式,分别对应不同情况下的解决方案.1.简单工厂模式原创 2013-12-01 13:35:15 · 2187 阅读 · 0 评论 -
C++设计模式之Builder(建造者)模式
我们可能会遇到这种情况,比如一个配置文件读取模块,它由几个小模块组成,每个小模块负责读取一种类型的配置.我们读取配置的顺序和过程是固定的,但是每个配置类型可能会因为业务的需求发生很多变化.这个过程和造房子有点像.每栋楼的建造过程是差不多的,但是各个部件在每栋楼里各不相同.有没有这样一种模式,可以帮我们应对这种复杂对象的各个部分频繁变化的需求呢?建造者模式就是这样一种模式.它提供原创 2013-12-01 13:50:59 · 1162 阅读 · 0 评论 -
C++设计模式之Prototype(原型)模式
当我们需要创建一种类型的对象时,可以用工厂模式;当对象的局部容易发生变化时,我们有建造者模式.但当我们有大量的对象类型,或者对象类型不易知道时,我们如何根据已有的一个对象快速构建新的对象呢?我们需要一个可以封装掉不同种类对象之间的区别,仅伸出相同的克隆接口,让所有的对象只需要考虑自身的复制.这样我们就可以快速得到大量相同类型的对象了.具有这种特征的模式是原型模式.其类图如下:原创 2013-12-01 13:59:58 · 1188 阅读 · 0 评论 -
C++设计模式系列
写此系列文章主要基于两点:网络上关于C++的设计模式文章不多,大部分都是基于.net或java的版本,由于C++本身的一些特性,很多设计模式采用C++来实现,从语言角度上来讲会显得不够优美,容易将真正的模式核心部分淹没在繁琐的new与delete等代码处理上.我个人是习惯与C++的,所以打算从头把所有设计模式用C++过一遍,既能够熟悉这些常规模式,也可以提高自身的代码水平.原创 2011-02-12 16:28:00 · 1063 阅读 · 0 评论 -
关于设计模式的7种坏味道和11种原则
设计模式作为一组抽象的设计思想,肯定有一些基本的原则.否则的话,任何设计都可以称之为"良好设计"的一种了.在设计模式中,也有整体"不允许"和"需要遵循"的方方面面.只要遵循了下面这些基本思想,写出来的设计往往都是很优秀的设计.7种坏味道僵化性: 说白了就是整个系统过于僵硬,没办法或很难针对其中的某个需要修改的地方做灵活的调整,牵一发而动全身.脆弱性:原创 2013-12-01 15:11:38 · 1482 阅读 · 0 评论