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

扬州网站开发公司wordpress程序员主题

扬州网站开发公司,wordpress程序员主题,泉州关键词排名,搭建网站代码装饰者模式#xff08;Decorator Pattern#xff09;是一种结构型设计模式#xff0c;它允许动态地向一个现有的对象添加新的功能#xff0c;同时不改变其结构。这种模式通过创建一个装饰类来包装原有的类#xff0c;提供额外的行为。 下面是一个使用 Java 实现装饰者模式…装饰者模式Decorator Pattern是一种结构型设计模式它允许动态地向一个现有的对象添加新的功能同时不改变其结构。这种模式通过创建一个装饰类来包装原有的类提供额外的行为。 下面是一个使用 Java 实现装饰者模式的实践案例 场景描述 假设我们正在开发一个咖啡馆应用程序需要能够计算订单中各种类型咖啡的成本。基本咖啡可以添加多种调料如摩卡、奶泡、豆浆等每种调料都会增加咖啡的成本。 步骤1定义组件接口 1// 咖啡接口作为所有咖啡和调料的基类 2public interface Coffee { 3 String getDescription(); 4 double getCost(); 5} 步骤2实现具体组件 1// 简单咖啡类实现咖啡接口 2public class SimpleCoffee implements Coffee { 3 Override 4 public String getDescription() { 5 return Simple Coffee; 6 } 7 8 Override 9 public double getCost() { 10 return 10; // 基础价格 11 } 12} 步骤3创建装饰者抽象类 1// 咖啡装饰者抽象类实现咖啡接口并持有一个咖啡接口的引用 2public abstract class CoffeeDecorator implements Coffee { 3 protected Coffee decoratedCoffee; 4 5 public CoffeeDecorator(Coffee coffee) { 6 this.decoratedCoffee coffee; 7 } 8 9 Override 10 public String getDescription() { 11 return decoratedCoffee.getDescription(); 12 } 13 14 Override 15 public double getCost() { 16 return decoratedCoffee.getCost(); 17 } 18} 步骤4实现具体装饰者 1// 摩卡装饰者添加摩卡调料的功能 2public class MochaDecorator extends CoffeeDecorator { 3 public MochaDecorator(Coffee coffee) { 4 super(coffee); 5 } 6 7 Override 8 public String getDescription() { 9 return decoratedCoffee.getDescription() , Mocha; 10 } 11 12 Override 13 public double getCost() { 14 return decoratedCoffee.getCost() 2; // 添加摩卡调料的成本 15 } 16} 17 18// 奶泡装饰者添加奶泡调料的功能 19public class WhipDecorator extends CoffeeDecorator { 20 public WhipDecorator(Coffee coffee) { 21 super(coffee); 22 } 23 24 Override 25 public String getDescription() { 26 return decoratedCoffee.getDescription() , Whip; 27 } 28 29 Override 30 public double getCost() { 31 return decoratedCoffee.getCost() 1; // 添加奶泡调料的成本 32 } 33} 34 35// 其他装饰者类似... 步骤5客户端代码使用装饰者 1public class DecoratorPatternDemo { 2 public static void main(String[] args) { 3 Coffee coffee new SimpleCoffee(); 4 System.out.println(coffee.getDescription() Cost: $ coffee.getCost()); 5 6 coffee new MochaDecorator(coffee); 7 System.out.println(coffee.getDescription() Cost: $ coffee.getCost()); 8 9 coffee new WhipDecorator(coffee); 10 System.out.println(coffee.getDescription() Cost: $ coffee.getCost()); 11 12 // 可以继续添加更多装饰者 13 // coffee new SoyDecorator(coffee); 14 // System.out.println(coffee.getDescription() Cost: $ coffee.getCost()); 15 } 16} 在此实践案例中CoffeeDecorator 类提供了一个包装咖啡对象的功能。具体的装饰者类如 MochaDecorator 和 WhipDecorator添加了额外的行为和成本。通过这种方式我们可以组合不同的装饰者来创建多种咖啡变体而无需为每一种组合创建一个新类。 装饰者模式是一种灵活的替代方案相比生成子类更为优雅。这种模式非常适合用于扩展类的功能特别是当我们希望在运行时能够动态地添加或删除功能时。此模式也遵循开闭原则因为我们可以添加新的装饰者类而不修改现有代码。
http://www.pierceye.com/news/824234/

相关文章:

  • 学校网站的建设需求搜索引擎优化的缺点包括
  • 牛牛襄阳做网站郑州网站建设市场
  • 网站首页的导航栏北京公司注册核名详细流程
  • 专注昆明网站建设有哪些网络营销方式
  • 公司做两个网站网站怎么做本地映射
  • 响应式网站一般做几个尺寸百度联盟怎么做自己的网站
  • 河南做网站的wordpress 幻灯片加数字
  • 东莞网站建设建网站平面设计培训哪个好
  • 网站建设与管理专业是什么办公空间设计案例整套
  • 网站设计网站源码怎么介绍自己的学校
  • 企业网站建设兴田德润很赞运动网站建设主题
  • 沧州自适应网站建设惠安规划局建设局网站
  • 第三方商城网站建设清理wordpress模板
  • 石家庄市建设厅网站wordpress 缩略图代码
  • 网站建设开发服务费怎么做账在线教育平台
  • 南京市英语网站建设网页制作基础教程课件葛艳玲
  • 石家庄网站建设电商台州自助建站在线咨询
  • 郑州媒体网站定制开发网站建设有趣名称
  • 清远企业网站建设公司江西网站开发企业
  • 中国建设监理协会化工监理协会网站中国建行官网首页
  • 长宁区科技网站建设科技类网站怎么做
  • 物流企业的网站模板wordpress海淘
  • 青岛做外贸网站的公司简介重庆关键词优化平台
  • 黄岛外贸网站建设很多网站没排名了
  • 广州做网站优化费用网站建设和制作
  • 修改网站域名网站收录低的原因
  • 网站登录页面模板下载做网站背景
  • 温州网站推广驭明电脑网站模版
  • 高端定制网站开发需要多少钱秦皇岛优化网站排名
  • 有网站源码怎么搭建网站南京网站制作设计公司