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

厉害的网站开发网站官网认证怎么做

厉害的网站开发,网站官网认证怎么做,在线文字图片生成器,做手机网站多少钱一、装饰器模式 概述 装饰器模式#xff08;Decorator Pattern#xff09;允许向一个现有的对象添加新的功能#xff0c;同时又不改变其结构。这种类型的设计模式属于结构型模式#xff0c;它是作为现有的类的一个包装 装饰器模式通过将对象包装在装饰器类中#xff0c;以…一、装饰器模式 概述 装饰器模式Decorator Pattern允许向一个现有的对象添加新的功能同时又不改变其结构。这种类型的设计模式属于结构型模式它是作为现有的类的一个包装 装饰器模式通过将对象包装在装饰器类中以便动态地修改其行为 主要解决一般的我们为了扩展一个类经常使用继承方式实现由于继承为类引入静态特征并且随着扩展功能的增多子类会很膨胀 何时使用在不想增加很多子类的情况下扩展类 优缺点 优点 装饰类和被装饰类可以独立发展不会相互耦合装饰模式是继承的一个替代模式装饰模式可以动态扩展一个实现类的功能 缺点 多层装饰比较复杂 1. 各个角色介绍 1.1 抽象组件Component 定义了组合中所有对象的通用接口可以是抽象类或接口。它声明了用于访问和管理子组件的方法包括添加、删除、获取子组件等 1.2 具体组件Concrete Component 是被装饰的原始对象它定义了需要添加新功能的对象 1.3 抽象装饰器Decorator 继承自抽象组件它包含了一个抽象组件对象并定义了与抽象组件相同的接口同时可以通过组合方式持有其他装饰器对象 1.4 具体装饰器Concrete Decorator 实现了抽象装饰器的接口负责向抽象组件添加新的功能。具体装饰器通常会在调用原始对象的方法之前或之后执行自己的操作 2. UML图 ​ 将创建一个 Shape 接口和实现了 Shape 接口的实体类。然后创建一个实现了 Shape 接口的抽象装饰类 ShapeDecorator并把 Shape 对象作为它的实例变量。RedShapeDecorator 是实现了 ShapeDecorator 的实体类 3. 具体例子和代码 角色分配 Shape形状接口 Rectangle实现形状接口的长方形类Circle实现形状接口的圆形类 ShapeDecorator形状装饰器抽象类 RedShapeDecorator红色形状装饰器继承ShapeDecorator 3.1 抽象组件及其实现类 Shape package com.vinjcent.prototype.decorator;/*** author vinjcent* description 形状接口* since 2024/3/15 16:23*/ public interface Shape {/*** 形状绘制动作*/void draw();} Rectangle package com.vinjcent.prototype.decorator;/*** author vinjcent* description 长方形* since 2024/3/15 16:26*/ public class Rectangle implements Shape {Overridepublic void draw() {System.out.println(Shape: Rectangle);}} Circle package com.vinjcent.prototype.decorator;/*** author vinjcent* description 圆形* since 2024/3/15 16:28*/ public class Circle implements Shape {Overridepublic void draw() {System.out.println(Shape: Circle);}} 3.2 抽象装饰器及其具体装饰器 ShapeDecorator package com.vinjcent.prototype.decorator;/*** author vinjcent* description 形状装饰器* since 2024/3/15 16:30*/ public abstract class ShapeDecorator implements Shape {protected Shape decoratedShape;public ShapeDecorator(Shape decoratedShape) {this.decoratedShape decoratedShape;}public void draw() {decoratedShape.draw();}} RedShapeDecorator package com.vinjcent.prototype.decorator;/*** author vinjcent* description 红色形状装饰器* since 2024/3/15 16:32*/ 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);}} 3.3 测试主函数 package com.vinjcent.prototype.decorator;/*** author vinjcent* description 装饰器模式* since 2024/3/15 16:39*/ public class Main {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();}} 测试结果 4. 使用场景 动态增强功能使用装饰器模式可在运行时为对象灵活地增加额外功能。通过组合各种装饰器能够实现不同功能的组合而无需改变原始对象的代码避免继承的功能扩展当使用继承来增强对象功能时会导致类的层次结构过于复杂时考虑采用装饰器模式。通过组合而非继承来实现功能扩展避免了深层次和复杂的类继承结构维护对象的封装性若需为对象添加功能同时又不愿修改原始对象的代码或破坏其封装性可采用装饰器模式。该模式不改变原对象结构只是在其上方增添功能弹性组合多项功能若需为对象添加多项功能且这些功能可弹性组合则可采用装饰器模式。透过组合各种装饰器能够实现各种功能的组合而无需创建大量子类贯彻单一职责原则在需要将功能添加与原始对象实现分离以符合单一职责原则时可采用装饰器模式。每个装饰器类专注于一个特定功能这有助于使类的职责更加明确
http://www.hkea.cn/news/14397043/

相关文章:

  • 用什么软件做网站好宁波网站建设按需定制
  • 中国太平保险集团官方网站wordpress 主题 导入2
  • 怎么给网站做网站地图一般网站的宽度
  • 深圳建设个网站wordpress内部架构
  • 服装企业的网站建设百度排名推广
  • 网站空间指的是什么意思中国搜索引擎市场份额
  • 推广做黄页网站为什么用asp做网站
  • 做面料要建议网站网站建设要学哪些东西
  • 免费网站建设讯息域名注册
  • 网站制作与网页设计课程设计视觉设计专业 学校排名
  • 企业门户网站建设行情扬州建设网站公司
  • 北京建网站公司推荐中国机械加工网官方
  • 上传文档的网站WordPress小说网站源码
  • 做网站图片无法显示的原因铝型材网络机柜设计报告
  • SUPERW上海网站建设工作室泰安焦点网络
  • 金融 网站 源码网络工程电子版
  • 咸宁网站建设多少钱wordpress 简约主题
  • 网页制作与网站建设实战教程视频教程可视化编程软件
  • 公司网站开发岳阳优化公司
  • 成都需要网站制作企业工商信用查询
  • wordpress快速建站教程视频网站建设 好
  • 一站式做网站技术如何提高网站点击率
  • 有什么设计网站企业电话
  • 湖南长沙网站建设公司电话营销活动方案模板范文
  • 域名备案 个人 网站基本信息查询开发人员工具
  • asp网站开发培训怎么做社交网站
  • 只买域名可以做自己的网站嘛大学生自学网
  • 莱芜区组织部网站wordpress外链插件
  • html5网站建设平台宝安网站-建设深圳信科
  • 鸿川建设工程有限公司官方网站wordpress 4.9.6 主题