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

网站友情链接的作用免费建网站流程

网站友情链接的作用,免费建网站流程,宜昌网站制作公司亿腾,广州网站建设 app 小程序装饰器模式#xff08;Decorator Pattern#xff09; 装饰器模式#xff08;Decorator Pattern#xff09;是一种结构型设计模式#xff0c;它允许向一个现有的对象添加新的功能#xff0c;同时又不改变其结构。装饰器模式通过创建一个装饰类来包装原有的类#xff0c;…装饰器模式Decorator Pattern 装饰器模式Decorator Pattern是一种结构型设计模式它允许向一个现有的对象添加新的功能同时又不改变其结构。装饰器模式通过创建一个装饰类来包装原有的类并在保留原有类的接口的情况下提供额外的功能。 装饰器模式的应用场景 在不影响其他对象的情况下以动态、透明的方式给单个对象添加职责如给一个图形对象添加边框、颜色等属性。当不能采用生成子类的方法进行扩展时如有大量独立的扩展或扩展是动态的。 装饰器模式的实现方式 1. 传统实现方式 思想通过定义一个抽象的组件类所有的具体组件和装饰类都继承自该组件类。装饰类包含一个组件对象并在调用其方法前后进行增强。 实现方式 // 抽象组件 abstract class Component {public abstract void operation(); }// 具体组件 class ConcreteComponent extends Component {public void operation() {System.out.println(ConcreteComponent operation);} }// 抽象装饰类 abstract class Decorator extends Component {protected Component component;public Decorator(Component component) {this.component component;}public void operation() {component.operation();} }// 具体装饰类A class ConcreteDecoratorA extends Decorator {public ConcreteDecoratorA(Component component) {super(component);}public void operation() {super.operation();addedBehavior();}public void addedBehavior() {System.out.println(ConcreteDecoratorA added behavior);} }// 具体装饰类B class ConcreteDecoratorB extends Decorator {public ConcreteDecoratorB(Component component) {super(component);}public void operation() {super.operation();addedBehavior();}public void addedBehavior() {System.out.println(ConcreteDecoratorB added behavior);} }// 客户端代码 public class DecoratorPattern {public static void main(String[] args) {Component component new ConcreteComponent();Component decoratorA new ConcreteDecoratorA(component);Component decoratorB new ConcreteDecoratorB(decoratorA);decoratorB.operation();} }优点 可以动态地添加和删除对象的职责比静态继承更加灵活。通过使用不同的具体装饰类以及这些装饰类的排列组合可以创造出很多不同行为的组合。符合开闭原则可以在不修改原有代码的情况下扩展对象的新功能。 缺点 会产生许多小对象增加了系统的复杂性。多层装饰时会增加调试的难度特别是出现问题时难以找到问题所在。 2. 使用接口实现装饰器模式 思想通过定义一个接口所有的具体组件和装饰类都实现该接口装饰类包含一个接口类型的对象并在调用其方法前后进行增强。 实现方式 // 抽象组件接口 interface Component {void operation(); }// 具体组件 class ConcreteComponent implements Component {public void operation() {System.out.println(ConcreteComponent operation);} }// 抽象装饰类 abstract class Decorator implements Component {protected Component component;public Decorator(Component component) {this.component component;}public void operation() {component.operation();} }// 具体装饰类A class ConcreteDecoratorA extends Decorator {public ConcreteDecoratorA(Component component) {super(component);}public void operation() {super.operation();addedBehavior();}public void addedBehavior() {System.out.println(ConcreteDecoratorA added behavior);} }// 具体装饰类B class ConcreteDecoratorB extends Decorator {public ConcreteDecoratorB(Component component) {super(component);}public void operation() {super.operation();addedBehavior();}public void addedBehavior() {System.out.println(ConcreteDecoratorB added behavior);} }// 客户端代码 public class InterfaceDecoratorPattern {public static void main(String[] args) {Component component new ConcreteComponent();Component decoratorA new ConcreteDecoratorA(component);Component decoratorB new ConcreteDecoratorB(decoratorA);decoratorB.operation();} }优点 接口使得装饰类和具体组件更加解耦符合依赖倒置原则。接口可以更容易地进行单元测试和模拟对象。 缺点 同样会产生许多小对象增加系统复杂性。多层装饰时仍然会增加调试的难度。 总结 实现方式优点缺点传统实现方式动态添加和删除职责符合开闭原则行为组合多样化产生许多小对象系统复杂性增加多层装饰调试难度大使用接口实现装饰器模式解耦装饰类和具体组件符合依赖倒置原则易于单元测试和模拟对象产生许多小对象系统复杂性增加多层装饰调试难度大 选择哪种实现方式应根据具体的需求和系统的复杂度来决定。如果希望组件和装饰类之间更加解耦且易于测试可以选择使用接口实现装饰器模式。如果更关注具体类的扩展性和灵活性可以选择传统的实现方式。
http://www.w-s-a.com/news/104176/

相关文章:

  • 优质的外国网站qq小程序在哪里打开
  • 商务网站建设与推广实训报告免费素材网站无水印
  • 外贸站seoapp开发公司历程概述
  • 沈阳网站推广¥做下拉去118cr陶瓷企业 瓷砖地板公司网站建设
  • 医院网站官方微信精神文明建设我做服装设计师的 求推荐资源网站
  • 微信网站建设需要那些资料昆明cms模板建站
  • 安庆网站建设兼职中企动力是500强吗
  • 网站排名优化技巧基于网站的网络营销方法有哪些
  • 摄影素材网站做知识问答的网站
  • 中小企业网站建设济南兴田德润电话门店管理系统软件排行
  • 昆明工程建设信息网站柳州网站建设公司哪家好
  • 如何分析网站关键词北京门户网站网址
  • 做网站与做游戏那个好网站域名怎么起
  • 有没有做cad单的网站银行网站建设方案视频
  • 和各大网站做视频的工作高校网站群管理系统
  • 中国建设人才服务信息网是正规网站怎么注销自己名下的公司
  • 网站开发新型技术那些网站做任务领q币
  • 海口手机网站建设wordpress微支付宝
  • 做公司网站需要几天深圳自定义网站开发
  • 做网站学多长时间可以学会推广软件公司
  • 网络网站设计培训长沙建站模板大全
  • 站群搭建移动端处理器天梯图
  • 岳池发展建设集团有限公司门户网站湛江seo咨询
  • 手机网站工具关键词排名是什么意思
  • 游民星空是谁做的网站沈阳网站托管公司
  • 做网站搭建需要什么人vs2017移动网站开发
  • 购物网站开发需要什么技术怎么查看网站是否备案
  • 学做电商那个网站好网站建设投票主题
  • 中卫网站推广网络营销毕业设计做网站大小有什么要求
  • 做问卷网站义乌网站建设推广专家