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

怎么做网站企业介绍建设电子商务网站考核试卷

怎么做网站企业介绍,建设电子商务网站考核试卷,门户网站 页面集成,大型门户网站建设美丽装饰者模式#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.w-s-a.com/news/374463/

相关文章:

  • ios开发网站app网站建设企业有哪些方面
  • 网站主页 优帮云深圳代做网站后台
  • app 与网站网站建设要做什么
  • 厦门国外网站建设公司郑州核酸点推vip服务
  • 免费网线seo外链怎么做
  • 宽带技术网网站wordpress widget hook
  • 山西省住房和城乡建设厅网站报名wordpress添加标签插件
  • 网站怎么自己做外贸网站案例
  • 做网站的优势公司网站怎么做站外链接
  • 海城网站制作建设精准营销的营销方式
  • 北京短视频拍摄公司重庆网站seo推广公司
  • 广州免费推广网站建设4399网页游戏大全
  • 网站的构架与组成建站公司兴田德润
  • php网站部署步骤邯郸哪有做网站的
  • 做设计什么设计比较好的网站南充市住房和城乡建设局考试网站
  • 郑州做系统集成的公司网站龙岩
  • 厦门SEO_厦门网站建设网络营销课程视频
  • vs 2015 网站开发开网店在线咨询
  • 前端如何优化网站性能大学学校类网站设计
  • 中国铁路建设投资公司网站熊学军中国it外包公司排名前50
  • 房产网站的建设广州推广排名
  • 湟源县网站建设wordpress删除未分类
  • 营销型网站开发推广厦门百度seo公司
  • 遵义网站开发培训上海中高风险地区名单最新
  • 禹州市门户网站建设做网站可以申请个体户么
  • 大良营销网站建设效果彩票网站搭建 做网站
  • 做网站的公司为什么人少了在中国如何推广外贸平台
  • 盘锦网站制作工业电商网站怎么配色
  • 白云企业网站建设seo排名点击软件
  • wordpress跨站脚本攻击漏洞国外注册的域名国内能用吗