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

网站漏洞怎么修复兴海县网站建设公司

网站漏洞怎么修复,兴海县网站建设公司,网站除了域名还要什么,北京注册工作室代理公司引言 装饰者模式#xff0c;又叫装饰器模式。它可以动态的将新功能附加到对象上。在对象功能扩展方面#xff0c;它比继承更灵活#xff0c;同时装饰者模式也体现了OCP原则。 在客户端调用使用了装饰者模式的对象时#xff0c;就好像在使用构造器层层包裹核心对象#x…引言 装饰者模式又叫装饰器模式。它可以动态的将新功能附加到对象上。在对象功能扩展方面它比继承更灵活同时装饰者模式也体现了OCP原则。 在客户端调用使用了装饰者模式的对象时就好像在使用构造器层层包裹核心对象层层装饰核心对象因此叫做装饰者模式。 一、装饰者模式类图 装饰者模式属于结构型设计模式。在JDK的IO流API中就利用了装饰者模式 以简单的形状和颜色为例。如何为不同的形状装饰新的颜色呢 上图中Shape和ShapeDecorator都是抽象类一般情况下装饰者模式中的顶层装饰器类ShapeDecorator一定要是抽象类因为它需要维护被装饰者并重写特定行为。客户端在调用的时候并不会直接使用它而是会使用具体的装饰器类Red、White。 Shape类在本例中是一个抽象类实际上也可以是一个接口主要看有没有需要维护的属性。接口中是不允许有属性的所以如果需要维护一些公共属性那么可以采用抽象类而如果只是封装了行为那么建议采用接口。 装饰者模式的精髓在于装饰者模式将继承和组合两种技巧相结合。 继承的目的是为了可以在原来的位置上取代被装饰对象前提是调用方使用的是父类引用。 组合采用构造器传入一个被装饰对象并在内部维护这个对象属性的目的是可以在核心对象的基础之上加以装饰即保留原来的核心对象的特征和行为只做扩展不做修改OCP原则。  装饰器子类在重写被装饰者的特定行为时一定要注意根据业务是否需要严格遵守对原来对象行为的扩展而不是修改。如果是只扩展不修改那么一定要在抽象装饰器类中调用被装饰对象的方法并在装饰器子类的方法中使用“super.”的形式间接调用被装饰者的方法然后根据装饰需要在调用的前后执行装饰逻辑。如果业务设计上允许对原有行为作出一些修改那么其实并没有严格遵守OCP原则这种情况下抽象装饰器类的对原对象方法的调用可以视情况而定修改甚至忽略。后者违背OCP原则的方式不建议使用装饰者模式来完成。 二、装饰者模式代码实现 /*** 图形接口*/ public abstract class Shape {protected String name;public abstract void draw();public String getName() {return name;} } public class Circle extends Shape {public Circle() {name 圆形;}Overridepublic void draw() {System.out.println(name);} } public class Square extends Shape {public Square() {name 正方形;}Overridepublic void draw() {System.out.println(name);} } /*** 装饰器抽象类*/ public abstract class ShapeDecorator extends Shape {protected Shape decoratedShape;public ShapeDecorator(Shape shape) {this.decoratedShape shape;}Overridepublic void draw() {decoratedShape.draw();} } public class Red extends ShapeDecorator {public Red(Shape shape) {super(shape);}Overridepublic void draw() {paint();}// 随意增加想要装饰在核心对象上的功能private void paint() {System.out.println(红色的 decoratedShape.getName());} } public class White extends ShapeDecorator {public White(Shape shape) {super(shape);}Overridepublic void draw() {paint();}private void paint() {System.out.println(白色的 decoratedShape.getName());} } 测试代码 public class Client {public static void main(String[] args) {Shape redCircle new Red(new Circle());redCircle.draw();Shape whiteCircle new White(new Circle());whiteCircle.draw();Shape redSquare new Red(new Square());redSquare.draw();Shape whiteSquare new White(new Square());whiteSquare.draw();} } 测试结果 红色的圆形 白色的圆形 红色的正方形 白色的正方形 总结 装饰者模式主要用于对现有对象添加新的功能可在一定程度上代替继承关系实现低耦合关系。与桥接模式类似都是为了防止类的膨胀而引出的结构型设计模式。而且在思路上与桥接模式呈现相反的类的依赖关系。 装饰者模式基于OCP原则不改变原来对象的属性及行为只做扩展。 它的类结构特点有两个继承和组合。 其中 继承的目的是为了可以在原来的位置上替代被装饰对象前提是调用方使用的是父类引用。 组合采用构造器传入一个被装饰对象并在内部维护这个对象属性的目的是可以在核心对象的基础之上加以装饰即保留原来的核心对象的特征和行为只做扩展不做修改OCP原则。 除了更好的实现对象功能的扩展和特性组合但是如果扩展功能较多被迫多层装饰就会使代码变得较为复杂。
http://www.yutouwan.com/news/306090/

相关文章:

  • 网站正在建设中 页面产品做推广都有那些网站
  • 网站所有权问题图文消息点击进去是自己的网站
  • wordpress post slug百度小程序关键词优化
  • 网站制作企业有哪些公司淘宝网页html模板代码
  • jsp网站开发技巧济南电商培训基地
  • 海南中小企业网站建设民治做网站多少钱
  • 甘肃省城乡城乡建设厅网站宁波网站门户设计
  • 做彩票网站需要什么青阳做网站
  • 可以做网站开个写手公司环保网站模板代码
  • 带数据库网站模板花卉网站建设策划
  • 需要网站建设的是哪一类人网站 建设原则
  • 打车网站开发网站建设的公司有哪些
  • 17网站一起做网店代发流程北京h5网站制作
  • 宁波网站建设兼职个人服装定制网站
  • 网站解决方案模板闲鱼上做网站
  • 为什么建设网银网站打不开品牌推广的渠道有哪些
  • 湖南网站开发企业photoshop怎么修改图片上的文字
  • 建立网站链接结构的基本方式是网站快速刷排名工具
  • 网站模板设计教程如何做网站优惠券推广
  • 青岛网站设计工作室建设部网站查询公司
  • 个人网站构建jarvis主题wordpress
  • 企业网站开发项目策划书基本框架hishop
  • 做网上招聘哪个网站好免费开店的平台有哪些
  • 网站收费模板做资源网站盈利点
  • 唐山教育平台网站建设抖音代运营合作策划书
  • 雄县阿里巴巴网站建设白云区网络推广
  • php 网站 服务器gta5此网站正在建设
  • 网站怎么做百度排名深圳莲花大厦住房和建设局网站
  • 唐山网站建设价格wordpress主题更换备份
  • 货架网站开发网站开发 平均工资