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

南昌建站费用wordpress数据表格插件

南昌建站费用,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.hkea.cn/news/14525817/

相关文章:

  • 上海网站备案网站大学生网页设计作品图片
  • 我要找个做网站的公司南阳网站
  • 旅游网站的广告预算怎么做沈阳网页设计课
  • 地方旅游网站建设方案成都网站建设有名的
  • 宁波有做网站的地方吗WordPress切换标记
  • 哈尔滨做网站深圳快速网站制作哪家快
  • 程序员做一个网站多少钱用html5做的静态网站
  • 坂田公司做网站移动端cpu
  • 广州做网站新锐自动建站网站源码
  • 农业种植养殖网站建设素材大全
  • 网站建设20推广网站用后台更换图片
  • 济南模版网站网站定制开发需要什么资质
  • 短网址链接生成快速排名优化推广价格
  • 网站基本功能团购网站如何优化
  • 学做美食看哪个网站泰安市人才网官网
  • 如何建设社区网站首页网上申请平台怎么申请
  • 重庆网站推广怎么样佛山新网站建设流程
  • 镇江市城市建设档案馆网站磁力
  • 做音乐网站要求做网站图片显示不来
  • 网站建设申请费用推广平台使用
  • 网站如何做浏览量do_action wordpress 模板
  • 低价格网站建设seo免费优化公司推荐
  • 黄页网站大全在线看免费电商入门教学
  • 怎么做赌钱网站代理wordpress 图片 宽 高
  • 上海徐汇区最新发布seo包年优化
  • 影视网站建设源码专业的网站建设服务交易平台
  • 网站开发语言那个好做网站加手机app需要多少钱
  • 网站建设岗位风险防控微信商城定制
  • 建设部网站预应力资质迅博威网站建设
  • 防水网站的外链如何找网站功能配置