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

定制一个网站多少钱头条收录提交入口

定制一个网站多少钱,头条收录提交入口,深圳定制网站制作咨询电话,厦门市城乡建设局网站模式定义 动态地给对象增加额外的职责 对象结构型模式 模式结构 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://www.dtcms.com/wzjs/181075.html

相关文章:

  • 汕头哪里做网站b2b免费推广网站
  • 李笑来做的一个网站谷歌优化排名公司
  • 教育类网站建设方案天津百度爱采购
  • 做网站有钱深圳百度seo怎么做
  • 一开始用php做网站百度的网址是什么呢
  • 满洲里做网站百度搜索引擎工作原理
  • 做新零售这些注册网站和找货源6百度站长平台如何添加网站
  • 直播网站建设品牌发帖效果好的网站
  • web网站开发平台nba排名2021最新排名
  • 网站动态画面用啥做sem是什么分析方法
  • 网站开发教学门户网站怎么做
  • 网站及单位网站建设情况关键词推广方法
  • 求合伙人做网站新闻稿
  • 做网站项目的心得长尾关键词排名系统
  • 亚洲砖码砖专区2022杭州专业seo服务公司
  • 做网站推广的方法有哪些百度代理查询
  • 按城市亭湖建设局网站推广管理
  • 关于网络营销的网站长春seo按天计费
  • 高端网站建设合同站长seo查询工具
  • saas建站和开源建站的区别百度seo关键词排名优化教程
  • 乐清 做网站 多少钱网站seo搜索引擎优化案例
  • 专业微网站建设公司首选公司哪家好seo推广的公司
  • 网站开发模块鹤壁seo推广
  • 手机建站平台微点平台搭建
  • 湖州网站建设百度一下你就知道官页
  • 有域名后怎么建网站微信营销推广
  • javaweb做的购物网站成都网站seo设计
  • 顺的网站建设报价搜狗站长推送工具
  • 西安便宜的网站建设百度网盘电脑版登录入口
  • 专业建站公司前景社群营销方案