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

网站建设视频教程phpmi2设计公司网站

网站建设视频教程php,mi2设计公司网站,html网站模板免费下载,毕节城乡建设局网站查询在软件开发过程中#xff0c;有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下#xff0c;可以动态地扩展其功能。所有这些都可以釆用装饰器模式来实现。 装饰器模式 允许向一个现有的对象添加新的功能#xff0c;同时又不改变他的…在软件开发过程中有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下可以动态地扩展其功能。所有这些都可以釆用装饰器模式来实现。 装饰器模式 允许向一个现有的对象添加新的功能同时又不改变他的结构进行扩展。 装饰器模式的结构与实现 通常情况下扩展一个类的功能会使用继承方式来实现。但继承具有静态特征耦合度高并且随着扩展功能的增多子类会很膨胀。如果使用组合关系来创建一个包装对象即装饰对象来包裹真实对象并在保持真实对象的类结构不变的前提下为其提供额外的功能这就是装饰器模式的目标。 结构 抽象构件Component定义一个抽象接口以规范准备接收附加责任的对象 具体构件Concrete Component实现抽象构件通过装饰器角色为其添加一些职责 抽象装饰Decorator继承抽象构件并包含具体构件的实例可以通过其子类扩展具体构件的功能 具体装饰Concrete Decorator实现抽象装饰的相关方法并给具体构件对象添加附加的责任 实现 #include iostream #include string using namespace std;//装饰器模式 class Phone { public:Phone(){}~Phone(){}virtual void showDecorate(){} };class iPhone :public Phone { private:string _name; public:iPhone(string name):_name(name){}~iPhone(){}void showDecorate(){cout _name 装饰器 endl;} };class NokiaPhone :public Phone { private:string _name; public:NokiaPhone(string name):_name(name){}~NokiaPhone(){}void showDecorate(){cout _name 装饰器 endl;} };class DecoratorPhone :public Phone { private:Phone* m_phone; public:DecoratorPhone(Phone *phone):m_phone(phone){}virtual void showDecorate(){m_phone-showDecorate();} };class DecoratePhoneA :public DecoratorPhone { public:DecoratePhoneA(Phone *phone):DecoratorPhone(phone){}void showDecorate(){DecoratorPhone::showDecorate();AddDecorate();} private:void AddDecorate(){cout 增加挂件 endl;} };class DecoratePhoneB :public DecoratorPhone { public:DecoratePhoneB(Phone* phone):DecoratorPhone(phone){}void showDecorate(){DecoratorPhone::showDecorate();AddDecorate();} private:void AddDecorate(){cout 增加屏膜 endl;} };void main() {Phone* phone new NokiaPhone(6300);Phone* phoneA new DecoratePhoneA(phone);Phone* phoneB new DecoratePhoneB(phone);phoneA-showDecorate();phoneB-showDecorate();delete phone; phone NULL;delete phoneA; phoneA NULL;delete phoneB; phoneB NULL; }装饰器模式的优缺点 优点 可以不用修改原有的接口就可以实现新功能的添加 装饰者可以很方便的转换原有接口中的实现可以给装饰者指定不同的ConcreteComponent实现不同的功能。 缺点 复杂性增加装饰者模式会导致许多小类的产生。 装饰器模式应用场景 前面讲解了关于装饰器模式的结构与特点下面介绍其适用的应用场景装饰器模式通常在以下几种情况使用。 当需要给一个现有类添加附加职责而又不能采用生成子类的方法进行扩充时。例如该类被隐藏或者该类是终极类或者采用继承方式会产生大量的子类。 当需要通过对现有的一组基本功能进行排列组合而产生非常多的功能时采用继承关系很难实现而采用装饰器模式却很好实现。 当对象的功能要求可以动态地添加也可以再动态地撤销时。
http://www.hkea.cn/news/14502294/

相关文章:

  • 网站建设服务市场aspx网站实例
  • 网站做好后北京网站平台建设
  • 福建微网站建设域名大全
  • 做淘宝网站的主机湖北网络建设公司网站
  • 前端如何兼职做网站潍坊专业做薪酬绩效
  • 做推广便宜的网站龙川县建设网站
  • 网站建设公司织梦模板百度制作网站
  • 怎么做倒计时网站网站排名查询alexa
  • 国内企业邮箱哪家好长沙百度搜索排名优化
  • 建网站免费程序wordpress 自带分页
  • 陶瓷类网站建设网站慢用台服务器做跳板
  • wordpress 一小时建站wordpress权限控制
  • 推广图片大全从哪些方面做好网站的seo
  • 网站编辑是什么主题资源网站制作平台
  • 北京移动官方网站安徽电子工程学校
  • 电商网站定制想要推广版
  • 乔拓云网站建设广告投放公司
  • 做调查的网站有哪些建设本地网站
  • 吉林市建设工程档案馆网站青州网站制作哪家好
  • 网站建设中可能出现的问题重庆专业网站公司
  • 服装公众号的手机网站怎么做wordpress 顺序
  • 想找个人做网站网站建设需要哪些资料
  • 营销网站怎么做做网站网上怎么挂公告
  • 邢台网站制作费用wordpress登录下载
  • lnmp wordpress重庆白云seo整站优化
  • 德阳网站优化wordpress照片加水印
  • 国外企业画册设计网站廊坊百度快速排名
  • iis怎么搭建设计网站中英文双语网站怎么做
  • 旅游网站建设国内外现状做一个网站需要到哪里做
  • 网站建设前景展望html编辑器的程序怎么设置