zoukankan      html  css  js  c++  java
  • decorator模式

     1 #include <iostream>
     2 using namespace std;
     3 
     4 class compoent
     5 {
     6 public:
     7     compoent(){}
     8     virtual ~compoent(){}
     9 
    10     virtual void Operation(){};
    11 };
    12 
    13 class concretecompoent:public compoent{
    14     virtual void Operation(){cout<<"I can only do AAAAAAAAAAAAAA!!!!\n";};
    15 
    16 };
    17 
    18 class decorator:public compoent{
    19 public:
    20 virtual void Operation(){};
    21 };
    22 
    23 class concretedecorator1:public decorator{
    24 public:
    25     compoent* p_com;
    26     concretedecorator1(compoent* var){
    27         p_com=var;
    28     }
    29     virtual void Operation(){
    30         p_com->Operation();
    31         cout<<"I can also do BBBBBBBBBBBBBB!!!!\n";
    32     }
    33 };
    34 
    35 class concretedecorator2:public decorator{
    36 public:
    37     compoent* p_com;
    38     concretedecorator2(compoent* var){
    39         p_com=var;
    40     }
    41     virtual void Operation(){
    42         p_com->Operation();
    43         cout<<"I can also do CCCCCCCCCCCCCCC!!!!\n";
    44     }
    45 };
    46 int main()
    47 {
    48     compoent* orign=new concretecompoent();
    49     orign->Operation();
    50     concretedecorator1* decor1=new concretedecorator1(orign);
    51     concretedecorator2* decor2=new concretedecorator2(decor1);
    52     concretedecorator1* decor3=new concretedecorator1(decor2);
    53     decor3->Operation();
    54     return 0;
    55 }
  • 相关阅读:
    05 css继承性
    04 选择器权重
    03 css三种引入的方式
    02 css实现举例
    01 css介绍
    05 dl-添加定义列表
    04 ol-热门点击排行榜
    02 h1 p hr br 特殊符号
    01html简介
    函数内置方法
  • 原文地址:https://www.cnblogs.com/kakamilan/p/2599520.html
Copyright © 2011-2022 走看看