cpp装饰器模式
Posted _WILLPOWER_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cpp装饰器模式相关的知识,希望对你有一定的参考价值。
装饰器模式(结构型模式):
在不改变现有对象结构的情况下,向对象添加新的功能,同时不改变其结构
重点在于动态的增加删除功能,装饰类和被装饰类独立,不会耦合。
返回的对象已经不是原来的对象了,但是调用方式还是不会变
#include <bits/stdc++.h>
using namespace std;
class Person
public:
virtual void action() = 0;
;
class Man : public Person
public:
void action()
cout << "打领带" << endl;
;
class Woman : public Person
public:
void action()
cout << "化妆" << endl;
;
class Dec1 : public Person
public:
Dec1(Person* p1) : p(p1)
void action()
p->action();
cout << "上班" << endl;
Person* p;
;
class Dec2 : public Person
public:
Dec2(Person* p1) : p(p1)
void action()
p->action();
cout << "下班" << endl;
Person* p;
;
int main()
Person* man = new Man();
Person* woman = new Woman();
man = new Dec1(man);
man = new Dec2(man);
woman = new Dec1(woman);
man->action();
woman->action();
return 0;
输出
打领带
上班
下班
化妆
上班
以上是关于cpp装饰器模式的主要内容,如果未能解决你的问题,请参考以下文章