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

网站支付宝网上支付功能怎么做宣武网站开发

网站支付宝网上支付功能怎么做,宣武网站开发,制作网页时一般使用什么对网页进行布局,小程序代理都是假的在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰器模式来实现。 装饰器模式 允许向一个现有的对象添加新的功能,同时又不改变他的…

在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰器模式来实现。

装饰器模式

允许向一个现有的对象添加新的功能,同时又不改变他的结构(进行扩展)。

装饰器模式的结构与实现

通常情况下,扩展一个类的功能会使用继承方式来实现。但继承具有静态特征,耦合度高,并且随着扩展功能的增多,子类会很膨胀。如果使用组合关系来创建一个包装对象(即装饰对象)来包裹真实对象,并在保持真实对象的类结构不变的前提下,为其提供额外的功能,这就是装饰器模式的目标。

结构

抽象构件(Component):定义一个抽象接口以规范准备接收附加责任的对象
具体构件(Concrete Component):实现抽象构件,通过装饰器角色为其添加一些职责
抽象装饰(Decorator):继承抽象构件,并包含具体构件的实例,可以通过其子类扩展具体构件的功能
具体装饰(Concrete Decorator):实现抽象装饰的相关方法,并给具体构件对象添加附加的责任

装饰器模式UML图

实现

#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.yayakq.cn/news/117650/

相关文章:

  • 一级a做爰片在线看网站怎么查网站关键词密度
  • 中国城乡建设部网站首页中国建设银行网站是什么
  • 网站密码管理制度常德论坛市民留言
  • 网站开发转码手机武清网站建设
  • jsp购物网站开发 论文导购类网站模板
  • 泰安网站建设找工作北京关键词优化平台
  • 在线制作公司网站WordPress菜单过滤器
  • 网站设计的任务做网站责任
  • 免费 网站建设静态网页模板源代码
  • 北京网站建设有哪些公司好wordpress制作上传图片
  • 网站建设挂什么费用怎样做网站呢
  • 湖北建设信息网站wordpress 手机端页面
  • 广州网站制作电话域名网站做优化外链
  • 吉安做网站的公司专业团队打造专业品质
  • 做卖图片的网站能赚钱吗科技与生活
  • 做休闲会所网站制作wordpress出售功能插件
  • 购物网站二级店铺mvc怎么编辑网站源码
  • 申请企业资助建设网站网站模板 国外
  • 北京市住房建设官网站山西泽庆建设公司官网
  • 怎么自己做购物网站房产网址
  • 网站建设需求分析的实施北京网站设计公司hlh成都柚米科技15
  • 网站设计软件河南的网站建设公司
  • wordpress 留言墙插件seo竞争对手分析
  • 个人网站设计论文模板四川建设网有限责任公司是国企吗
  • 建一个类似淘宝的网站需要多少钱虚拟主机能建设网站吗
  • 中国建设监理网站企业网站建设哪家优惠
  • vip影视建设网站官网核心关键词和长尾关键词举例
  • 网站建设费的账务处理wordpress mysql 密码重置
  • 申请好域名后怎么建设网站创意设计网页制作教程
  • 一个公司网站开发多少钱做网站能自己找服务器吗