大话设计模式装饰模式c++实现
装饰模式
其他二十三种设计模式
#include<iostream>using namespace std;//装饰模式
//人类
class Person {public:Person(){} //删除会无法引用子类(TShirts、BigTrouser...)的默认构造函数Person(string _name) {this->name = _name;}virtual void Show() {cout << "装扮的" << name << endl;}private:string name;
};//抽象服饰类
class Finery :public Person {public:void Decorate(Person* _component) {this->component = _component;}virtual void Show(){if (component!=NULL){component->Show();}}
protected:Person* component;
};//具体服饰类
class TShirts :public Finery {public:virtual void Show(){cout << "大T恤 ";Finery::Show();}
};
class BigTrouser :public Finery {public:virtual void Show() {cout << "垮裤 ";Finery::Show();}
};
class Sneakers :public Finery {public:virtual void Show(){cout << "破球鞋 ";Finery::Show();}
};
class Suit:public Finery {public:virtual void Show(){cout << "西装 ";Finery::Show();}
};
class Tie :public Finery {public:virtual void Show() {cout << "领带 ";Finery::Show();}
};
class LeatherShoes :public Finery {public:virtual void Show() {cout << "皮鞋 ";Finery::Show();}
};void test1() {Person* xc = new Person("小菜");cout << "第一种装扮: \n";Sneakers* pqx = new Sneakers();BigTrouser* kk = new BigTrouser();TShirts* dtx = new TShirts();pqx->Decorate(xc);kk->Decorate(pqx);dtx->Decorate(kk);dtx->Show();delete dtx;delete kk;delete pqx;delete xc;}
int main() {test1();return 0;
}
大话设计模式装饰模式c++实现相关推荐
- 大话设计模式—装饰模式
装饰模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. 这种模式创建了一个装饰类,用来包装原 ...
- 大话设计模式——装饰模式
需求 写一个给人模拟搭配不同服饰的程序,可以给人换各种各样的衣服裤子的形象. 初步实现 需求比较简单,直接上代码: public class Person {private String name;p ...
- 大话设计模式-装饰模式(大鸟和小菜Java版)
装饰模式:装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象.(百度百科) 这个模式让后期的修改变得极为简单,真的就高内 ...
- 由浅入深大话设计模式——装饰模式
今天我们从一个日常每个人都会接触的地方下手--换装,人靠衣服马靠鞍,衣服确实能提升一个人的外表分数(可是我就不会 = =),那如果让你做一个给人搭配不同衣服的系统你会怎么做呢? 下面我们设计一个程序: ...
- 大话设计模式-装饰模式
前言 穿衣打扮是现在的时尚潮流,我们时常刷淘宝来不断满足自己的打扮需求,买个帽子.换条裤子.整双时尚鞋.需求是没有极限的,无止境的购物,只要存在这个平台那么这些装饰性的购物是不可避免的.这在我们软件开 ...
- 【大话设计模式】设计模式系统学习大合集
转载请注明出处:http://blog.csdn.net/column/details/designpatternbylmb.html 为了方便各位网友学习以及方便自己复习之用,将设计模式的系列内容按 ...
- 大话设计模式C++版——装饰模式
女人常说男人喜新厌旧.仅仅见新人笑,那闻旧人哭,但装饰模式(Decorator)却是一种结交新朋友不忘老朋友的设计模式,很适合去古代当老公(现代是不行的.由于仅仅能娶一个老婆了).装饰模 ...
- 大话设计模式之装饰模式(python实现)
大话设计模式之装饰模式 使用场景 定义 装饰模式结构图 python实现装饰模式 代码结构图 优点 使用场景 建造过程不稳定,不确定.把所需的功能按照正确的顺序串联起来进行控制. 新加入的东西仅仅是为 ...
- 【Python】《大话设计模式》Python版代码实现
<大话设计模式>Python版代码实现 上一周把<大话设计模式>看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多.偶尔会用到一些脚本语言写脚本的人来说,很是开阔眼 ...
最新文章
- Django的是如何工作的
- 轻松自动化---selenium-webdriver(python) (六)
- [转载]ubuntu 12.10 软件源更新列表
- python读取lmdb文件_如何使用python創建LMDB文件
- win下anaconda装python2.7和3.5以及jupyter共存 (本篇实践通过)
- C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- mysql 存储时间 时间戳_具体场景下MySQL中用“时间戳”存储时间的问题
- cds5516舵机控制程序_[电力世界]中的应用程序CDS
- SQL中代替Like语句的另一种写法
- 万字长文,解密秒杀架构!(建议收藏)
- 笔记本电脑突然搜索不到无线网信号怎么办?
- android 手机日志查看工具,日志查看器手机版下载
- 【实用教程】本地blast使用及简单python脚本辅助
- C语言中,的三种作用
- OOALV的基本实现步骤
- 牛客观察 | 大厂疯狂招人背后: 中小企业要躺平“捡漏”吗?
- HBase如何快速查询
- 【鱼骨图】【数学史】行列式、矩阵论的历史
- 强引用,软引用,弱引用和虚引用的说明
- 各种正则判断(前端)