设计模式
文章平均质量分 79
zdongfuyu
这个作者很懒,什么都没留下…
展开
-
设计模式-单例模式(Singleton Pattern)
应用场景:1. Windows的Task Manager(任务管理器)就是很典型的单例模式2. windows的Recycle Bin(回收站)也是典型的单例应用。在整个系统运行过程中,回收站一直维护着仅有的一个实例。3. 网站的计数器,一般也是采用单例模式实现,否则难以同步。4. 应用程序的日志应用,一般都何用单例模式实现,这一般是由于共享的日志文件一直处于打开状态,因为只能原创 2015-07-21 16:58:34 · 412 阅读 · 0 评论 -
设计模式-抽象工厂(Abstract Factory)
应用场景:1、一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有类型的工厂模式都是重要的。2、系统中有多于一个的产品族,而每次只使用其中某一产品族。3、属于同一个产品族的产品将在一起使用,这一约束必须在系统的设计中体现出来。4、系统提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于具体实现。优点:1、抽象工厂模式隔离了具体类的生产,原创 2015-07-21 17:03:26 · 383 阅读 · 0 评论 -
设计模式-工厂方法模式(Factory Method)
应用场景:1.类不知道自己要创建哪一个对象2.类用它的子类来指定创建哪个对象3.客户需要清楚创建了哪一个对象优点:1、多态性:客户代码可以做到与特定应用无关,适用于任何实体类。2、子类提供挂钩。基类为工厂方法提供缺省实现,子类可以重写新的实现,也可以继承父类的实现。-- 加一层间接性,增加了灵活性3、连接并行的类层次结构。4、良好的封装性,代码结构清晰。5、原创 2015-07-21 17:19:56 · 447 阅读 · 0 评论 -
设计模式-建造者模式(Builder)
应用场景:1、相同的方法,不同的执行顺序,产生不同的事件结果时,可以采用建造者模式。2、多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,则可以使用该模式。3、产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,这个时候使用建造者模式是非常合适。4、在对象创建过程中会使用到系统中的一些其它对象,这些对象在产品对象的创建过程中不易得到时,也可以采用建造原创 2015-07-21 17:13:48 · 312 阅读 · 0 评论 -
设计模式-原型模式(Prototype)
应用场景:1、资源优化场景类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等。2、性能和安全要求的场景通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。3、一个对象多个修改者的场景一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用。在实际项目中,原型模式很少单独出现,一般原创 2015-07-21 17:21:22 · 329 阅读 · 0 评论 -
设计模式-适配器模式(Adapter Pattern)
应用场景:1 系统需要使用现有的类,而这些类的接口不符合系统的接口。2 想要建立一个可以重用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。3 两个类所做的事情相同或相似,但是具有不同接口的时候。4 旧的系统开发的类已经实现了一些功能,但是客户端却只能以另外接口的形式访问,但我们不希望手动更改原有类的时候。5 使用第三方组件,组件接口定义和原创 2015-07-23 13:58:50 · 387 阅读 · 0 评论 -
设计模式-桥接模式(Bridge Pattern)
应用场景: 1适用在需要跨多平台的图形和窗口系统。 2当需要用不同的方式改变接口和实现时。 3通过上述的介绍,我们了解为什么需要桥接模式(Bridge)和如何使用桥接模式(Bridge),由于对象的多维度的变化,使得难以决定变化时,我们可以把对象 和变化抽象出来。 如果我们的对象依赖于抽象,对于具体的实现并不关心,我们可以通过对象组合,组合出我们原创 2015-07-23 14:22:49 · 357 阅读 · 0 评论 -
设计模式-装饰模式(Decorator Pattern)
应用场景:1、 想透明并且动态地给对象增加新的职责的时候。2、 给对象增加的职责,在未来存在增加或减少可能。3、 用继承扩展功能不太现实的情况下,应该考虑用组合的方式。优点:装饰模式与继承关系的目的都是要扩展对象的功能,但是装饰模式可以提供比继承更多的灵活性。通过使用不同的具体装饰类以及这些装饰类的排列组合,设计师可以创造出很多不同行为的组合。这种比继承更加灵原创 2015-07-23 14:32:14 · 434 阅读 · 0 评论 -
单例模板类的实现
templateclass CSingleton{public:static T& Instance();private:static void MakeInstance();static void DestroySingleton();static T* m_pInstance;private:CSingleton();CSingleton(const原创 2015-11-24 12:10:12 · 463 阅读 · 0 评论