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

网站建设推介会发言稿长沙网站seo厂家

网站建设推介会发言稿,长沙网站seo厂家,西安易网信息技术有限公司,中山做app网站公司哪家好目录 一、背景介绍二、思路&方案三、过程1.装饰模式简介2.装饰模式的类图3.装饰模式代码4.装饰模式,职责父类拆分的奥义5.装饰模式,部件抽象类的无中生有 四、总结五、升华 一、背景介绍 最近公司在做架构模型的时候,涉及到装饰模式的研…

目录

  • 一、背景介绍
  • 二、思路&方案
  • 三、过程
    • 1.装饰模式简介
    • 2.装饰模式的类图
    • 3.装饰模式代码
    • 4.装饰模式,职责父类拆分的奥义
    • 5.装饰模式,部件抽象类的无中生有
  • 四、总结
  • 五、升华

一、背景介绍

最近公司在做架构模型的时候,涉及到装饰模式的研究,对于装饰模式的边界理解,本次有了看山还是山的效果,故做此总结以记录本次的升华。

二、思路&方案

  • 1.装饰模式简介
  • 2.装饰模式的类图
  • 3.装饰模式代码
  • 4.装饰模式,职责父类拆分的奥义
  • 5.装饰模式,部件抽象类的无中生有

三、过程

1.装饰模式简介

装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。

解释:给(ConcreteComponent)对象增加一些额外(Decorator的子类)职责;就给(ConcreteComponent)增加功能来说;通过生成(ConcreteComponent)子类的方式增加功能;装饰模式更为灵活(扩展装饰子类通过聚合方式装饰,耦合性更低)

2.装饰模式的类图

在这里插入图片描述

3.装饰模式代码

package com.a7DesignPattern.a2StructuralType.a04Decorator;/*** 功能描述:** @Author:makang* @Date: 2021/5/19 14:43*/
public class Client {public static void main(String[] args) {ConcreteComponent c = new ConcreteComponent();ConcreteComponentA a = new ConcreteComponentA();ConcreteComponentB b = new ConcreteComponentB();a.setComponent(c);b.setComponent(a);b.Operation();}
}
package com.a7DesignPattern.a2StructuralType.a04Decorator;/*** 功能描述:** @Author:makang* @Date: 2021/5/19 11:30*/
public abstract class Component {public abstract void Operation();
}
package com.a7DesignPattern.a2StructuralType.a04Decorator;/*** 功能描述:** @Author:makang* @Date: 2021/5/19 11:37*/
public class ConcreteComponent extends Component{@Overridepublic void Operation() {System.out.println("具体对象的操作");}
}
package com.a7DesignPattern.a2StructuralType.a04Decorator;/*** 功能描述:** @Author:makang* @Date: 2021/5/19 11:43*/
public class Decorator extends Component{protected Component component;@Overridepublic void Operation() {if(component != null){component.Operation();}}public void setComponent(Component component) {this.component = component;}
}
package com.a7DesignPattern.a2StructuralType.a04Decorator;/*** 功能描述:** @Author:makang* @Date: 2021/5/19 14:27*/
public class ConcreteComponentA extends Decorator{private String addedState;@Overridepublic void Operation() {super.Operation();addedState = "New State";System.out.println("具体装饰对象A");}
}
package com.a7DesignPattern.a2StructuralType.a04Decorator;import com.a6UMLRelationShip.a3combination.a2.A;/*** 功能描述:** @Author:makang* @Date: 2021/5/19 14:29*/
public class ConcreteComponentB extends Decorator{@Overridepublic void Operation() {super.Operation();AddedBehavior();System.out.println("具体装饰对象B");}private void AddedBehavior(){}
}

4.装饰模式,职责父类拆分的奥义

Decorator类是从ConcreteComponent中的装饰行为中抽象出来的类;从而使得后续扩展装饰符合开闭原则。

5.装饰模式,部件抽象类的无中生有

ConcreteComponent中的装饰行为的拆分,使得这些行为与被装饰者必须得从客户端产生关系;这也就对客户端暴露了业务;因而产生Component类。

四、总结

  • 1.无装饰模式情况下,将装饰方式当做被装饰者类中行为;这些行为对于被装饰者类而言不支持开闭原则。
  • 2.装饰行为在被装饰者中剥离之后,使得两个如何合并成为了眼前的问题。
  • 3.无中生有的做一个部件抽象类,又将两者做了部件类上的合并。
  • 4.技术上可以实现,业务上没有实现;这样的一种实现结果是否算是符合要求的? 将这条透明化的问题提出来也是进步的印证。

五、升华

该模式从技术角度通过剥离+无中生有父类的角度实现了扩展装饰符合开闭原则,并且对于客户端也没有对外暴露装饰过程的效果;在业务的角度是需要站到技术的基础之上去理解业务才会更加顺畅。

http://www.yayakq.cn/news/766776/

相关文章:

  • 东莞废水处理 东莞网站建设wordpress主题教程视频
  • 专业电子网站建设wordpress插件音乐播放器
  • 做网站优化有必要学校网站建设方案模板
  • 外贸建站如何推广百度手机助手app下载安装
  • 温州网站建设外包网站开发设计的源码
  • 汕头建站价格宝塔批量建站工具
  • 专业网站推广引流互联网站开发
  • 赣榆做网站游戏服务端源码
  • 营销网站的建设流程h5网站建设代理
  • 开发网站开源免费网站建设费 无形资产
  • 网站着陆页怎么做内容不相关的网站做301重定向
  • 人才网站的会计账如何做婚纱设计网站模板商城
  • 设计师找图网站荆州哪里做网站
  • 网站优化建设郑州互联网推广营销隐迅推认定
  • 照片视频制作网站成都软件开发工资一般多少
  • 如果用别人公司信息做网站近期的新新闻
  • wordpress 企业站主题中国新闻社是央企吗
  • 网站建设十胜石项目管理软件免费
  • 祭祖网站怎么做专业做影楼招聘网站有哪些
  • 怎么做公司内部网站唯美图片wordpress主题
  • 电子商务网站建设规划的论文wordpress w3
  • 网站的关键词报价的网站跨境电商app下载
  • 做网站买什么服务器做装修的应该去哪网站找客户
  • 贵阳市建设局地址网站服饰 视频 网站建设
  • 做外贸网站建设青少年编程培训机构排名前十
  • 织梦程序来搭建网站谁会网站开发
  • 网站实现留言功能吗百度搜索优化平台
  • 如何做地图的ppt模板下载网站山西seo博客
  • 群晖的网站开发做网站编辑工作累吗
  • jsp做电影网站开发公司算是业主吗