Anywhere

水中苇
随笔 - 28, 文章 - 3, 评论 - 0, 引用 - 0
数据加载中……

Decorator模式...

由于在开发过程中.由于需求的不断改变,可能要不断的为类添加新的功能,这样就要不断的继承现有的类,以致于继承的层次逐渐加深.为了避免这种情况发生,我们用另外一种方式来实现类的功能的增加,即Decorator模式.
先看一下代码:

class Component
{
 
public;
   Component();
   
virtual ~Component();
   
virtual void Operation();
}
;
class ChildCom:public Component
{
 
public;
  ChildCom();
  
~ChildCom();
  
void Operation();
}
;
class Decorator:public Component
{
public:
  Decorator(Component *);
  
~Decorator();
  
void Operation();
protected:
  Component 
*_cmpt;   //保留了父类的operation.
}
;
class ChildDecorator
{
public:
ChildDecorator(Component *pCom):Decorator(pCom)
   {}
~ChildDecorator();
void Operation()
{
 _cmpt
->Operation();
 
this->newAction();
}

void newAction();  //新添加的operation.
}
;
Component类为父类,ChildCom为Component的一个子类,假如在ChildCom上再添加一个行为的话,这时,创建一个Decorator抽象类继承于Component,然后创建一个子类,在这个子类中完成添加新功能...

posted on 2009-08-10 19:11 三水寿 阅读(135) 评论(0)  编辑 收藏 引用 所属分类: 设计模式学习笔记----结构模式


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理