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

自主式响应网站搜索引擎网站制作

自主式响应网站,搜索引擎网站制作,seo顾问能赚钱吗,网络设计工作室装饰者模式#xff08;Decorator Pattern#xff09;是一种结构型设计模式#xff0c;它允许你动态地向一个现有的对象添加新的行为#xff0c;同时又不改变其结构。 一、定义与特点 定义#xff1a;装饰者模式动态地将责任附加到对象上。若要扩展功能#xff0c;装饰者…装饰者模式Decorator Pattern是一种结构型设计模式它允许你动态地向一个现有的对象添加新的行为同时又不改变其结构。 一、定义与特点 定义装饰者模式动态地将责任附加到对象上。若要扩展功能装饰者提供了比继承更加有弹性的替代方案。 特点 结构型模式装饰者模式关注于对象的组合以及如何通过组合来实现新的功能。动态扩展通过装饰者模式可以在不修改原有类代码的情况下动态地向对象添加新的行为。透明性装饰后的对象仍然可以被当作原有类型的对象来使用客户端代码不需要知道对象是否被装饰过。 二、关键角色与职责 Component抽象构件 定义一个接口或抽象类声明了在具体构件中实现的业务方法。它是具体构件和抽象装饰类的共同父类引入可以使客户端以一致的方式处理未被装饰的对象以及装饰之后的对象实现客户端的透明操作。 ConcreteComponent具体构件 实现了Component接口或抽象类的具体类定义了具体的构件对象。实现了在Component中声明的方法装饰器可以给它增加额外的职责方法。 Decorator抽象装饰类 继承自Component接口或抽象类用于给具体构件增加职责。维护一个指向Component对象的引用通过该引用可以调用装饰之前构件对象的方法。需要在子类中实现具体的装饰行为。 ConcreteDecorator具体装饰类 继承自Decorator抽象类负责向构件添加新的职责。每一个具体装饰类都定义了一些新的行为可以调用在Decorator中定义的方法并可以增加新的方法用以扩充对象的行为。 三、运行机制 创建具体构件对象首先创建一个具体构件对象这是需要被装饰的原始对象。创建装饰器对象接着创建一个或多个装饰器对象通过构造函数将具体构件对象传入装饰器对象。调用方法当调用装饰后对象的方法时装饰器对象会先调用其所持有的具体构件对象的方法然后再执行自己定义的额外行为。 四、适用场景 功能扩展需要为一个类扩展功能为其添加额外的职责。动态添加行为需要在运行时动态地向对象添加新的行为而不需要修改其类定义。避免子类爆炸通过装饰者模式可以避免通过继承来扩展功能所导致的子类数量过多的问题。 五、优缺点 优点 灵活性提供了比继承更加灵活的功能扩展方式。可扩展性可以通过组合不同的装饰器来创建具有不同行为的新对象。透明性装饰后的对象仍然可以被当作原有类型的对象来使用。 缺点 复杂性会产生很多的小对象增加了系统的复杂性。排错困难对于多次装饰的对象调试时寻找错误可能需要逐级排查较为烦琐。 六、代码示例 示例一Java中的IO流 以Java中的IO流为例InputStream和OutputStream是最基本的抽象构件而各种FilterInputStream和FilterOutputStream就是具体的装饰器它们可以实现各种不同的IO流处理功能如缓冲、压缩、加密等。 // 抽象构件 InputStream input new FileInputStream(example.txt);// 具体装饰器缓冲流 BufferedInputStream bufferedInput new BufferedInputStream(input);// 再次装饰数据输入流 DataInputStream dataInput new DataInputStream(bufferedInput);// 使用装饰后的对象读取数据 while (dataInput.available() ! 0) {System.out.print((char) dataInput.readByte()); } dataInput.close(); 在这个例子中FileInputStream是具体构件BufferedInputStream和DataInputStream是具体装饰器它们依次对输入流进行了缓冲和数据处理功能的装饰。 示例二咖啡制作  在咖啡制作系统中一杯咖啡可以有多种调料如糖、奶、奶油等。通过装饰器模式可以动态地为咖啡添加不同的调料而不需要创建大量的子类来表示不同调料组合的咖啡 interface Coffee {double cost();}class SimpleCoffee implements Coffee {Overridepublic double cost() {return 1.0;}}abstract class CoffeeDecorator implements Coffee {protected Coffee coffee;public CoffeeDecorator(Coffee coffee) {this.coffee coffee;}}class SugarDecorator extends CoffeeDecorator {public SugarDecorator(Coffee coffee) {super(coffee);}Overridepublic double cost() {return coffee.cost() 0.5;}} 综上所述装饰者模式是一种强大且灵活的设计模式它允许我们在不修改原有类代码的情况下动态地向对象添加新的行为。然而在使用时也需要注意其可能带来的系统复杂性和排错困难等问题。
http://www.hkea.cn/news/14378911/

相关文章:

  • 广西智能网站建设哪家有wordpress 图片管理插件
  • 服务器搭建网站跑不满宽带百度导航官网
  • 兼职工厂网站建设兰州产品营销网站建设
  • 华为网站建设官网企业服务平台上线
  • 自动提卡的网站怎么做的永久免费crm管理系统
  • 网站建设需要服务器支持 吗响应式网站建设特征
  • 如何去掉Wordpress访问网站东莞做网站要多少钱
  • 临沂建设网站公司wordpress安卓显示
  • 安庆市网站建设公司如何做产品网站推广
  • 网站优化反馈机制 seo沈阳做招聘网站
  • 石家庄网站推广报价网页设计基础考试题库含答案
  • 漳州市长泰县建设局网站做外贸主要是哪些网站
  • 销售部网站建设费广告设计与制作需要学什么
  • 做网站视频一般上传到哪里电商视觉设计是干什么的
  • 网站建设是设邯郸注册公司流程和费用
  • 制作网站的公司有哪些网站设计师网站
  • 黑龙江做网站公司怎样在凡科免费做网站
  • delphi 实现网站开发能源科技网站建设
  • 正能量视频不打马赛克东营做网站优化公司
  • 正规的网站建设专业公司免费个人简历word可编辑
  • 搭建发卡网站要多少钱wordpress添加产品
  • 被百度收录的网站有哪些百度识图网站
  • 好的建设网站阿里巴巴做外贸流程
  • 申请网站官网上海网站的优化公司
  • 交友免费网站建设微信怎么制作自己的小程序
  • wordpress如何不显示评论seo外包团队
  • 手机怎样做网站图解贵阳建设工程信息网站
  • 有哪些做婚品的网站自适应网站建设
  • 哪个网站可以免费做音乐相册重庆制作网站
  • 大连做网站优化青岛个人建站模板