![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
恨天低
程序员
展开
-
Singleton模式
template class TSingleton{public: static T* Instance( void ) { if (cpoInstance == NULL) { try{ cpoInstance = new T; } catch(...) { cpoInstance = NULL; }原创 2011-12-26 09:32:01 · 933 阅读 · 1 评论 -
工厂模式
class Product{public: virtual ~Product() = 0;protected: Product();private:};Product::Product(){}Product::~Product(){}class ConcreteProduct:public Product{public: ~ConcreteProduct();原创 2011-07-19 20:21:57 · 511 阅读 · 0 评论 -
简单工厂模式
class Operation{public: Operation(void) { }public: ~Operation(void) { }public: double numberA; double numberB; char operate ;public: void setNumberA(double number) { numberA = numb原创 2011-07-15 14:22:14 · 639 阅读 · 0 评论 -
State模式
意图:允许一个对象在其内部状态改变时改变它的行为;对象看起来似乎修改了它的类;在一个状态即将结束的时候启用下一个状态,可以是一个按需的连锁反应;适用性:1、一个对象的行为取决于它的状态,并且它必须在运行过程中可以根据它的状态改变它的行为;2、一个操作中含有庞大的多分支的条件语句,并且这些分支依赖于该对象的状态;这个状态通常使用一个或多个枚举常量表示;通常,有多个操作包含这一原创 2012-06-29 15:06:04 · 867 阅读 · 0 评论 -
观察者模式
观察者模式概念:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。“Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automat原创 2012-12-26 14:07:02 · 1234 阅读 · 0 评论 -
装饰者模式
想象一下有如下的场景: 有两种主咖啡, 可以搭配任意的饮料,我们的目标是允许类容易扩展,在不修改现有代码的情况下,可以搭配新的行为。这里可以用装饰者模式来实现。1. uml 图 装饰者模式动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 这里吹一下装饰者模式的好处:每个组件都可以单独使用,或转载 2013-01-28 16:26:53 · 615 阅读 · 0 评论 -
职责链模式
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍装饰模式的实现。 职责链模式:使转载 2013-01-29 15:36:23 · 646 阅读 · 0 评论