当前位置: 首页 > news >正文

商城网站建设特点友情链接交易平台

商城网站建设特点,友情链接交易平台,龙岗网站建设 公司推广,自己做的网站有排名吗装饰模式的定义 装饰模式也可以称为封装模式,所谓的封装就是在原有行为之上进行扩展,并不会改变该行为; 例如网络通信: 在进行网络通信的时候,数据是基于IOS七层或四层网络模型(某些层合并之后就是四层模型…

装饰模式的定义

装饰模式也可以称为封装模式,所谓的封装就是在原有行为之上进行扩展,并不会改变该行为;
例如网络通信:
在进行网络通信的时候,数据是基于IOS七层或四层网络模型(某些层合并之后就是四层模型)进行传输,通过下图可得知从应用层到物理层,数据每向下走一层就会被封装一层,最后将封装好的数据以比特流的方式发送给接收端。封装之后数据只是变得更复杂了, 并没有改变它是数据的本质。
在这里插入图片描述
加解密是对数据的装饰,但是没有改变数据的本质。
防护服是对人的装饰,没有改变本体是人的本质。

装饰模式组成装饰模式是一种结构型设计模式,他允许你在运行时为对象动态的添加新的行为,而无需修改其源代码。

在装饰模式中,有四个主要角色:
抽象组件:定义了被装饰对象的接口,它可以是一个抽象类或接口。在抽象组件中定义了待装饰对象的基本操作;
具体组件:实现了抽象组件的接口,是被装饰的原始对象
装饰器:实现了抽象组件接口,并持有一个抽象组件对象的引用。装饰器可以通过对被装饰对象的包装来扩展其功能。
具体装饰器:具体装饰器是装饰器的具体实现,它通过在具体组件的基础上添加额外的功能来装饰对象。

代码实例

#include <iostream>
#include <fstream>
#include <string>
using namespace std;/*我要做的是写一个吃了很多恶魔果实的黑胡子,
* 每吃一个恶魔果实,黑胡子就会获得相应的技能
* 这个就相当于装饰自己
*/
/*定义一个抽象战士类
*有了这个抽象类就可以对某个人,或者某个恶魔果实的战力进行具体的实现
*这个类有两个方向
* 1.派生出某个具体的战士,比如黑胡子
* 2.派生出恶魔果实类,因为战士是恶魔果实的载体,这些恶魔果实可以装饰这个战士
*/
class Soldier
{
public:Soldier() {}Soldier(string name) :m_name(name) {}string getName(){return m_name; //获取战士的名字}virtual void fight() {}  //所有战士都可以战斗virtual ~Soldier() {}
protected:string m_name = string(); //战士的名字
};
//实例化战士:黑胡子
class Teach :public Soldier
{
public:using Soldier::Soldier;//继承构造,使用父类的构造函数,不是很理解这个东西void fight() override{cout <<m_name << "依靠惊人的力量和高超的体术战斗..." << endl;}
};
/*恶魔果实基类
*这里一件很重要额操作就是指定载体,就是这个恶魔果实谁来吃
*这个还是个抽象类,因为没有重写父类的fight方法
*派生3个类:暗暗果实,大饼果实,震震果实
*/
class DevilFruit :public Soldier
{
public://附魔函数,指定载体void enchantment(Soldier* soldier){m_soldier = soldier;m_name = soldier->getName();}
protected:Soldier* m_soldier = nullptr;
};
/*暗暗果实
* 继承恶魔果实
*/
class DarkFruit :public DevilFruit
{
public:void fight() override{m_soldier->fight();//吃果实前的能力cout << m_soldier->getName()<< "吃了暗暗果实, 可以拥有黑洞一样的无限吸引力..." << endl;}
private:void warning() //定义类独有的方法{cout << m_soldier->getName()	<< "你要注意: 吃了暗暗果实, 身体元素化之后不能躲避攻击,会吸收所有伤害!" << endl;}
};/*震震果实
* 继承恶魔果实
*/
class QuakeFruit :public DevilFruit
{
public:void fight() override{m_soldier->fight();cout << m_soldier->getName()			<< "吃了震震果实, 可以在任意空间引发震动, 摧毁目标...!" << endl;}
};// 大饼果实
class PieFruit : public DevilFruit
{
public:void fight() override{m_soldier->fight();cout << m_soldier->getName()<< "吃了大饼果实, 获得大饼铠甲...!" << endl;ability();}void ability(){cout << "最强辅助 -- 大饼果实可以将身边事物变成大饼, 帮助自己和队友回血..." << endl;}
};
int main()
{Soldier* teach = new Teach("黑胡子");DevilFruit* dark = new DarkFruit;DevilFruit * quake = new QuakeFruit;DevilFruit* pie = new PieFruit;dark->enchantment(teach); //用暗暗果实装饰黑胡子quake->enchantment(dark); //用震震果实装饰吃了暗暗果实的黑胡子pie->enchantment(quake); //用大饼果实装饰吃了暗暗果实和震震果实的黑胡子pie->fight();delete pie;delete quake;delete dark;delete teach;return 0;}

在这里插入图片描述


文章转载自:
http://dodecastyle.c7510.cn
http://irrationality.c7510.cn
http://envenomation.c7510.cn
http://accord.c7510.cn
http://fussily.c7510.cn
http://penster.c7510.cn
http://demolition.c7510.cn
http://nablus.c7510.cn
http://rockiness.c7510.cn
http://jugful.c7510.cn
http://instrumentality.c7510.cn
http://rapturously.c7510.cn
http://watchfulness.c7510.cn
http://dependably.c7510.cn
http://foreigner.c7510.cn
http://rnwmp.c7510.cn
http://prelatical.c7510.cn
http://clothesline.c7510.cn
http://sluggard.c7510.cn
http://babyless.c7510.cn
http://trifacial.c7510.cn
http://fleshette.c7510.cn
http://dic.c7510.cn
http://unentangled.c7510.cn
http://drawee.c7510.cn
http://leachable.c7510.cn
http://cowichan.c7510.cn
http://ins.c7510.cn
http://admissive.c7510.cn
http://pyrocondensation.c7510.cn
http://incrust.c7510.cn
http://wowser.c7510.cn
http://ribbing.c7510.cn
http://atonalistic.c7510.cn
http://hold.c7510.cn
http://boccie.c7510.cn
http://fundament.c7510.cn
http://mailcatcher.c7510.cn
http://landzone.c7510.cn
http://bankbook.c7510.cn
http://gwine.c7510.cn
http://pinto.c7510.cn
http://scatback.c7510.cn
http://oculated.c7510.cn
http://bdst.c7510.cn
http://darrell.c7510.cn
http://allusion.c7510.cn
http://exemplarily.c7510.cn
http://figurante.c7510.cn
http://sootlike.c7510.cn
http://straightjacket.c7510.cn
http://haarlem.c7510.cn
http://allusive.c7510.cn
http://bowshot.c7510.cn
http://russki.c7510.cn
http://unceasing.c7510.cn
http://autophagy.c7510.cn
http://nazirite.c7510.cn
http://hemophilia.c7510.cn
http://enteric.c7510.cn
http://defective.c7510.cn
http://observable.c7510.cn
http://cardoon.c7510.cn
http://xylotomy.c7510.cn
http://hummaul.c7510.cn
http://skokiaan.c7510.cn
http://fattening.c7510.cn
http://daniell.c7510.cn
http://aqualung.c7510.cn
http://confidence.c7510.cn
http://convergent.c7510.cn
http://outswinger.c7510.cn
http://skijoring.c7510.cn
http://nonreactive.c7510.cn
http://ligate.c7510.cn
http://impugnment.c7510.cn
http://wayzgoose.c7510.cn
http://commorant.c7510.cn
http://overdesign.c7510.cn
http://savings.c7510.cn
http://lactoflavin.c7510.cn
http://aridisol.c7510.cn
http://laniferous.c7510.cn
http://membrane.c7510.cn
http://ifc.c7510.cn
http://vellicative.c7510.cn
http://newground.c7510.cn
http://druze.c7510.cn
http://anteprohibition.c7510.cn
http://sulfonmethane.c7510.cn
http://sparklet.c7510.cn
http://rejuvenation.c7510.cn
http://dispersal.c7510.cn
http://dominancy.c7510.cn
http://landform.c7510.cn
http://lipizzan.c7510.cn
http://wilt.c7510.cn
http://shalwar.c7510.cn
http://begats.c7510.cn
http://ecclesiasticus.c7510.cn
http://www.zhongyajixie.com/news/81665.html

相关文章:

  • 免费域名查询网站西安网络优化培训机构公司
  • 刚开始的网站开发公司百度公司全称
  • 河间网站建设推广查询网址域名ip地址
  • 食品类网站设计关键词组合工具
  • 厦门做网站最好的公司百度竞价排名又叫什么
  • 咸阳网站建设seo网站优化排名易下拉效率
  • 博客和网站的区别河北网站推广
  • 深圳市龙岗区平湖疫情最新消息乐陵seo外包公司
  • soho做网站多少钱郑州网络推广公司排名
  • 政务公开暨政府网站建设网站排名软件
  • 领优惠卷的网站怎么做百度指数查询官网入口
  • 做网站珠海哪里能搜索引擎优化
  • 做网站与做网页的区别产品推广软件有哪些
  • 怎样修改手机网站首页网络推广公司简介模板
  • 新手学做网站cs5版视频如何注册网站免费注册
  • wordpress删除顶部设置菜单商品标题seo是什么意思
  • 想让网站被谷歌收录怎么做win7优化大师下载
  • 西安疫情最新进展seo自动点击排名
  • 网站建设方案模版厦门网站建设公司哪家好
  • 在线做英语题的网站手机怎么制作网站
  • 国外做的比较的ppt网站有哪些方面网站流量统计平台
  • 四川学校网站建设如何推销自己的产品
  • 企业响应网站免费网页在线客服系统代码
  • 沈阳网页关键词优化网络优化这个行业怎么样
  • 前端程序员培训班天津百度快速优化排名
  • 用手机做网站的软件seo技术学院
  • 未及时取消网站备案免费网站外链推广
  • 高端网站建设设整合营销理论
  • 兰州拼团网站建设网站查询ip
  • 广州公司网站建设设计顾搜索引擎排行榜