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

有梦商城公司网站建网站报价表

有梦商城公司网站,建网站报价表,宁波优化网站厂家,wordpress页面不要菜单模式定义 动态地给对象增加额外的职责 对象结构型模式 模式结构 Component:抽象构件 ConcreteComponent: 具体构件 Decorator:抽象装饰类 ConcreteDecorator: 具体装饰类 抽象装饰类代码 public class Decorator extends Compo…

模式定义

动态地给对象增加额外的职责

  • 对象结构型模式

模式结构

  • Component:抽象构件
  • ConcreteComponent: 具体构件
  • Decorator:抽象装饰类
  • ConcreteDecorator: 具体装饰类
抽象装饰类代码
public class Decorator extends Component {private Component component;public Decorator(Component component) {this.component = component;}public void operation() {component.operation();}}

具体装饰类代码

public class ConcreteDecorator extends Decorator {Object addedState; // 新增属性public ConcreteDecorator(Component component) {super(component);}public void operation() {super.operation();addedBehavior();}// 新增方法public void addedBehavior() {// do something}}
  • 一个装饰类的接口必须与被装饰类的接口保持相同
    • 对于客户端来说无论是装饰之前的对象还是装饰之后的对象都可以一致对待
  • 尽量保持具体构件类Component作为一个“轻”类
    • 不要把太多的逻辑和状态放在具体构件类中可以通过装饰类对其进行扩展

简化装饰模式

如果只有一个具体构件类而没有抽象构件类,那么抽象装饰类可以作为具体构件类的直接子类

透明装饰模式

客户端完全面向抽象编程

  • 客户端不声明具体构件类型和具体装饰类型,而全部声明为抽象构件类型

半透明装饰模式

客户端面向抽象构件类型具体装饰类型编程

  • 客户端可以声明具体装饰者类型对象,调用具体装饰者中新增方法

实例

某系统提供了一个数据加密功能,可以对字符串进行加密。最简单的加密算法通过对字母进行移位来实现,同时还提供了稍复杂的逆向输出加密,还提供了更为高级的求模加密。用户先使用最简单的加密算法对字符串进行加密,如果觉得还不够可以对加密之后的结果使用其他加密算法进行二次加密,当然也可以进行第三次加密。现使用装饰模式设计该多重加密系统。

模式分析

  • 优点
    • 提供比继承更多的灵活性以扩展对象功能
    • 通过配置文件在运行时选择不同的装饰器以动态扩展对象功能
    • 具体构件类和具体装饰类可以独立变化
      • 符合开闭原则
  • 缺点
    • 增加系统的复杂度
    • 比继承更加易于出错,排错困难

适用环境

  • 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责
  • 需要动态地给一个对象增加功能,这些功能也可以动态地被撤销
  • 当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时
    • 系统中存在大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长
    • 不能继承的类定义(如final类)

文章转载自:

http://Hg15jGrB.rnyhx.cn
http://KeiGhmbK.rnyhx.cn
http://57ymfSak.rnyhx.cn
http://BpODYkzf.rnyhx.cn
http://6Go6OPt1.rnyhx.cn
http://KN2M0OnU.rnyhx.cn
http://ZjigweGw.rnyhx.cn
http://IixV36Lr.rnyhx.cn
http://7XiaYBqq.rnyhx.cn
http://xXqtppEd.rnyhx.cn
http://xXc0REuH.rnyhx.cn
http://NhIWN06R.rnyhx.cn
http://DNq1uP9s.rnyhx.cn
http://XyQHBqy6.rnyhx.cn
http://GRtcClf8.rnyhx.cn
http://RXKI735W.rnyhx.cn
http://XNcJiUmw.rnyhx.cn
http://Vg4oBBrM.rnyhx.cn
http://sTRu6qd7.rnyhx.cn
http://vYMK2DYV.rnyhx.cn
http://Bw2n2NGp.rnyhx.cn
http://7yhwuG3p.rnyhx.cn
http://wfnibvXi.rnyhx.cn
http://YxNcwzk4.rnyhx.cn
http://Qc0qYTjM.rnyhx.cn
http://vtSEEOo7.rnyhx.cn
http://uUor4eGF.rnyhx.cn
http://sjLPHsrC.rnyhx.cn
http://alcoUxOQ.rnyhx.cn
http://xugcPTvB.rnyhx.cn
http://www.dtcms.com/wzjs/606986.html

相关文章:

  • 包工头接活网站app北京电商网站建设公司
  • 常德网站开发哪家好电脑系统优化软件十大排名
  • 网站开发就业前景分析app注册
  • 免费做四年级题的网站wordpress加载变慢
  • 招聘网站如何做英文版网站建设策划方案
  • 莱州哪有做网站的广东网站建设需要多少钱
  • 做羞羞网站游惠萍建盏简介
  • 电商网站前端模板那个网站可以做微课
  • 怎么做跳转网站个人公众号可以用wordpress
  • 门户网站欣赏不动户激活 e路护航安全组件
  • 宠物网站开发文档门户网站开发意义
  • 做彩铃的网站导出wordpress用户
  • 网站建设合同 代码应不应该给怎么创建网站论坛
  • 重庆商城网站建设公司青岛专业网站建设哪家好
  • 网站开发报价单展厅设计常用材料
  • 播州区住房和城乡建设局网站建设银行的网站首页
  • 网站 建设意见网站未备案怎么访问
  • 彩票网站开发注意事情网页可视化编辑
  • 什么是商城网站建设美术生最吃香的专业
  • 兰州网站seo费用外贸公司网站建设费会计科目
  • 在线模版下载网站wordpress中文企业模板
  • 淄博外贸网站哪家好专业做网站的技术人员
  • 中国购物网站大全排名qq企业邮箱登录
  • 鼓楼公司网站建设费用食品网站建设建议
  • 网站备案取名想要推广页正式
  • 网站对联广告图片济宁建筑人才网
  • 织梦二次开发手机网站企业建设网站有哪些费用
  • 易营宝智能建站平台在线做网站教程
  • 全国新农村建设中心网站广西智能网站建设设计
  • 全球做的比较好的网站有哪些南昌网站建设招聘