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

用python开发网站网站制作app免费软件

用python开发网站,网站制作app免费软件,做装修的应该去哪网站找客户,云服务器gpu租用Decorator 动机 在某些情况下我们可能会“过度地使用继承来扩展对象的功能”, 由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性; 并且随着子类的增多(扩展功能的增多),各种子类的组合&#xff…

Decorator

动机
  • 在某些情况下我们可能会“过度地使用继承来扩展对象的功能”, 由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性; 并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展 功能的组合)会导致更多子类的膨胀
  • 如何使”对象功能的扩展“能够根据需要动态实现,同时避免”扩展功能的增多“带来的子类膨胀问题,从而使得任何”功能扩展变化“所导致的影响降到最低?
模式定义

动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码 & 减少子类个数)。

在这里插入图片描述

#include <iostream>class Component
{
public:virtual ~Component() {}virtual void operation() = 0;// ...
};class ConcreteComponent : public Component
{
public:~ConcreteComponent() {}void operation(){std::cout << "Concrete Component operation" << std::endl;}// ...
};class Decorator : public Component // is-a 为了完善接口规范
{
private:Component *component; // has-a 为了将来具体的实现public:~Decorator() {}Decorator(Component *c) : component(c) {}virtual void operation(){component->operation();}// ...
};class ConcreteDecoratorA : public Decorator
{
public:ConcreteDecoratorA(Component *c) : Decorator(c) {}void operation(){Decorator::operation();std::cout << "Decorator A" << std::endl;}// ...
};class ConcreteDecoratorB : public Decorator
{
public:ConcreteDecoratorB(Component *c) : Decorator(c) {}void operation(){Decorator::operation();std::cout << "Decorator B" << std::endl;}// ...
};int main()
{ConcreteComponent *cc = new ConcreteComponent();ConcreteDecoratorB *db = new ConcreteDecoratorB(cc);ConcreteDecoratorA *da = new ConcreteDecoratorA(db);Component *component = da;component->operation(); delete da;delete db;delete cc;return 0;
}
/*
Concrete Component operation
Decorator B
Decorator A
*/
何时场景
  • 动态且透明地向各个对象添加职责,即不影响其他对象
  • 对于可以撤销的责任
  • 当通过子类化扩展不切实际时
总结
  • 通过采用组合而非继承的手法, Decorator模式实现了在运行时动态扩展对象功能的能力,而且可以根据需要扩展多个功能。避免 了使用继承带来的“灵活性差”和“多子类衍生问题
  • Decorator类在接口上表现为is-a Component的继承关系,即Decorator类继承了Component类所具有的接口(为了完善接口规范)。但在实现上又表现为has-a Component的组合关系,即Decorator类又使用了另外一个Component类(为了将来的具体实现)
  • Decorator模式的目的并非解决“多子类衍生的多继承”问题, Decorator模式应用的要点在于解决“主体类在多个方向上的扩展功能”——是为“装饰”的含义。
http://www.tj-hxxt.cn/news/58055.html

相关文章:

  • 收费网站怎么做网推平台有哪些比较好
  • 网站建设收费明细坚决把快准严细实要求落实到位
  • 音乐网站开发案例网站案例
  • 找个公司做网站需要注意什么网站关键词怎么优化到首页
  • wordpress 标题优化南宁百度seo
  • 重庆微信网站制作费用最近的新闻热点时事
  • 网站要怎么做的吗百度公司好进吗
  • 河北沧州市网络公司外贸seo软文发布平台
  • php 网站开发360如何做谷歌seo推广
  • 深圳做网站网络营销公司排名免费外链代发平台
  • 义乌网站建设联系方式公司品牌推广方案范文
  • 手机网站制作与建设seo课堂
  • 中文一级a做爰片免费网站百度分析
  • css网站 mysql网络营销方式
  • 黄埔区做网站网络营销是什么工作
  • 建立网站后怎样收费吗网络推广与推广
  • 网站开发数据库河南seo网站多少钱
  • jsp做网站好不好独立站seo外链平台
  • 北师大网页制作与网站建设网页推广怎么收取费用
  • 网站互点都是怎么做的郴州seo网络优化
  • 电子商务网站建设前期准备网络营销学什么内容
  • 建设网站设备预算360上网安全导航
  • java开发兼职网站开发词语搜索排行
  • 公司网站如何做分录深圳网络推广哪家比较好
  • 什么是网络营销信息群排名优化软件官网
  • 商城网站建设报价方案病毒式营销
  • 什么是网站设计种类深圳网络营销推广方案
  • 网站和数字界面设计师谷歌广告推广网站
  • 66郑州网站建设正规的培训机构有哪些
  • 指定图片做logo网站东莞百度推广优化排名