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

保定手机网站建设中国建设教育协会网站查询

保定手机网站建设,中国建设教育协会网站查询,主营 网站建设 app开发,wordpress 管理员密码类型#xff1a;结构型模式 实现原理#xff1a;装饰器模式通过将对象包装在装饰器类中#xff0c;并在保持类方法签名完整性的前提下#xff0c;提供额外功能 作用#xff1a;动态地给一个对象添加一些额外的职责。增加功能方面#xff0c;装饰器模式比生成子类更灵活…类型结构型模式 实现原理装饰器模式通过将对象包装在装饰器类中并在保持类方法签名完整性的前提下提供额外功能 作用动态地给一个对象添加一些额外的职责。增加功能方面装饰器模式比生成子类更灵活。 解决的问题为了扩展类使用继承方式引入静态特征而随着扩展功能的增多子类发生膨胀。 何时使用在不想增加很多子类的情况下扩展类。 解决方法划分具体功能职责并继承装饰者模式。 关键代码1、Component 类充当抽象角色不应该具体实现。 2、修饰类引用和继承 Component 类具体扩展类重写父类方法。 应用实例1、孙悟空有 72 变当他变成庙宇后他的根本还是一只猴子但是他又有了庙宇的功能。 2、不论一幅画有没有画框都可以挂在墙上但是通常都是有画框的并且实际上是画框被挂在墙上。在挂在墙上之前画可以被蒙上玻璃装到框子里这时画、玻璃和画框形成了一个物体。 优点装饰类和被装饰类各自独立 缺点多层装饰比较复杂。 使用场景 1、扩展一个类的功能。 2、动态增加功能动态撤销。 装饰器模式包含以下几个核心角色 抽象组件Component定义了原始对象和装饰器对象的公共接口或抽象类可以是具体组件类的父类或接口。具体组件Concrete Component是被装饰的原始对象它定义了需要添加新功能的对象。抽象装饰器Decorator继承自抽象组件它包含了一个抽象组件对象并定义了与抽象组件相同的接口同时可以通过组合方式持有其他装饰器对象。具体装饰器Concrete Decorator实现了抽象装饰器的接口负责向抽象组件添加新的功能。具体装饰器通常会在调用原始对象的方法之前或之后执行自己的操作。 装饰器模式通过嵌套包装多个装饰器对象可以实现多层次的功能增强。每个具体装饰器类都可以选择性地增加新的功能同时保持对象接口的一致性。 实现 步骤 1创建一个接口Shape.java public interface Shape {void draw(); } 步骤 2创建实现接口的实体类。Rectangle.java public class Rectangle implements Shape {Overridepublic void draw() {System.out.println(Shape: Rectangle);} } Circle.java public class Circle implements Shape {Overridepublic void draw() {System.out.println(Shape: Circle);} } 步骤 3创建实现了 Shape 接口的抽象装饰类。ShapeDecorator.java public abstract class ShapeDecorator implements Shape {protected Shape decoratedShape;public ShapeDecorator(Shape decoratedShape){this.decoratedShape decoratedShape;}public void draw(){decoratedShape.draw();} } 步骤 4创建扩展了 ShapeDecorator 类的实体装饰类。RedShapeDecorator.java public class RedShapeDecorator extends ShapeDecorator {public RedShapeDecorator(Shape decoratedShape) {super(decoratedShape);}Overridepublic void draw() {decoratedShape.draw();setRedBorder(decoratedShape);}private void setRedBorder(Shape decoratedShape){System.out.println(Border Color: Red);} } 步骤 5使用 RedShapeDecorator 来装饰 Shape 对象。DecoratorPatternDemo.java public class DecoratorPatternDemo {public static void main(String[] args) {Shape circle new Circle();ShapeDecorator redCircle new RedShapeDecorator(new Circle());ShapeDecorator redRectangle new RedShapeDecorator(new Rectangle());//Shape redCircle new RedShapeDecorator(new Circle());//Shape redRectangle new RedShapeDecorator(new Rectangle());System.out.println(Circle with normal border);circle.draw();System.out.println(\nCircle of red border);redCircle.draw();System.out.println(\nRectangle of red border);redRectangle.draw();} } 步骤 6执行程序输出结果Circle with normal borderShape: CircleCircle of red borderShape: CircleBorder Color: RedRectangle of red borderShape: RectangleBorder Color: Red这段代码实现了装饰器模式。首先创建了一个Shape接口该接口定义了一个绘制(draw)方法。然后创建了两个实现了Shape接口的具体类Rectangle和Circle它们分别实现了绘制方法用于绘制矩形和圆形。接下来创建了一个抽象装饰类ShapeDecorator它也实现了Shape接口并持有一个Shape类型的成员变量decoratedShape。该类的构造函数接受一个Shape对象作为参数用于装饰该对象。在绘制方法中首先调用被装饰对象的绘制方法然后执行额外的装饰操作。再次创建了一个扩展了ShapeDecorator的具体装饰类RedShapeDecorator。该类在绘制方法中除了调用被装饰对象的绘制方法外还添加了一个设置红色边框的操作。最后在主函数中创建了一个Circle对象和两个经过装饰的对象redCircle和redRectangle。通过调用各个对象的绘制方法可以看到装饰器模式的效果。原始的Circle对象只绘制了圆形而经过装饰的redCircle对象在绘制圆形之后还添加了红色边框的操作。执行程序后输出了三个对象的绘制结果。可以看到原始的Circle对象只绘制了圆形而经过装饰的redCircle对象在绘制圆形之后还添加了红色边框的操作。同样装饰了Rectangle对象的redRectangle对象也具有红色边框。这展示了装饰器模式的应用通过动态地添加额外的行为可以在不修改现有对象的情况下对其进行装饰和扩展。
http://www.w-s-a.com/news/514789/

相关文章:

  • 汕头做网站优化公司seo软件简单易排名稳定
  • 如何做众筹网站微网站设计平台
  • 富平做网站十堰优化seo
  • 免费网站空间可访问wordpress弹窗注册代码
  • 东莞网站建设教程南京做代账会计在哪个网站上找
  • 网站开发好了 怎么发布wordpress数据库缓存插件
  • 工业电商网站怎么配色社交网站建设平台
  • 使用pycharm网站开发建一个网站需要什么条件
  • 网站建设哪些是需要外援的问题wordpress商品展示主题
  • 定制网站开发的目的是什么wordpress 增加按钮
  • 建设单位网站经费请示wordpress模板添加授权
  • 国外的电商网站有哪些为进一步加强校园网站建设
  • 专业集团门户网站建设企业微信商城和网站建设
  • 多少钱可以做网站找网络公司做推广费用
  • python php 网站开发网络营销师是干什么的
  • 网站建设设计方案动漫制作专业学校
  • 吴江区建设用地申报网站包装设计模板设计素材
  • 快速建站的公司wordpress 元数据定义
  • 网站seo分析工具网站标题用空格 逗号影响seo
  • 基金项目实验室信息网站建设wordpress文章新窗口打开
  • php网站开发就业前景做网站推荐源创网络
  • wordpress 8211西安网站优化维护
  • 泰安招聘网站有哪些wordpress 回复提醒
  • 网站服务器不稳定怎么打开网页企业营销策划心得体会
  • 自己做视频网站会不会追究版权企业商城网站建设方案
  • 烟台网站制作计划网站做seo的好处
  • 网站首页轮播官方网站下载拼多多
  • 罗庄区建设局网站自己做网站推广产品
  • 优秀flash网站欣赏苏州吴中区建设局网站
  • 网站添加wordpress博客网上商城购物系统论文