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

商城网站建设最新报价建设银行网站会员用户名格式

商城网站建设最新报价,建设银行网站会员用户名格式,做农宿的网站,谷歌关键词挖掘工具目录 一、背景介绍二、思路&方案三、过程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/609942/

相关文章:

  • 网站建设优化服务机构深做网站公司
  • 免费做海报的网站接做室内效果图的网站
  • 外贸导向企业网站最新楼盘价格走势图
  • 电子政务与网站建设工作总结行政部网站建设规划
  • 网站 空间 购买成都网站关键词
  • 网站实名认证需要什么资料设计制作数字电压表
  • 网站文件appwordpress域名空间
  • 郑州网站建站做电影网站怎么拿到版权
  • 网站推广的优点网站建设相关博客
  • 在线做GO分析的网站做淘宝网站用什么软件有哪些内容
  • 深圳分销网站建设seo文章外包
  • 服务器网站部署端口配置个人博客网页设计图片
  • 最缺工的一百个职业西安官网seo方法
  • 国外一个做ppt的网站wordpress增加留言板
  • 网络营销的含义有哪些绍兴百度推广优化排名
  • 学校网站建设问卷调查表成都网站优化维护
  • 网站建设公司招网站设计搜狗网站录入
  • 怎么做一个简单的网站广州游戏网站建设
  • 自助建站系统厂家哈尔滨建站优化定制
  • 英国做网站的人成都正规集团网站制作维护
  • 专业网站建设科技公司dnf制裁做任务网站
  • 网站建设与营销网站建设的公司服务
  • 建设商务网站的方案淘宝上的网站建设可信
  • 自己的网站怎么接广告石家庄兼职做网站
  • 容桂网站开发福建新闻最新消息
  • 建设网站的本质银川网站建设一条龙服务
  • 小程序与手机网站区别网站设计与建设难吗
  • 课程网站建设所用技术wordpress分类页获取分类名称
  • 大连建设局网站地址电工培训学校
  • 鄂州正规网站建设如何做网站开屏