Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95266
  • 博文数量: 46
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 505
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-22 19:56
文章分类
文章存档

2008年(46)

我的朋友

分类: C/C++

2008-11-07 18:14:46


public class person  // component
{
 public:
    person(){};
    ~person(){};
    show() {cout<<"i wear";}
}

public class cloth // decorator
{
private:
  person *temp;
public:
   cloth(){};
    decorator(person *t){temp=t;}
   ~cloth(){};
}

public class tshirt :public cloth  //concrete decorator1
{
public:
  tshirt(person * t):d(t){};
  void show()
    {temp->show();
     cout<< "tshirt";
    }
}

public class skirt :public cloth //concrete decorator12
{
public:
  skirt (person * t):d(t){};
  void show()
    {temp->show();
     cout<< "tkirt";
    }
}

main()
{
 person *p=new person();
 tshirt *ten=new tshirt();
 ten->decorator(p);
 ten->show();
 tskirt *tn=new tskirt();
 tn->decorator(p);
 tn->show();
}
给基本类component动态的增加新功能,形成具体的decorator类。
阅读(829) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~