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

邢台网站建设的地方榆林尚呈高端网站建设

邢台网站建设的地方,榆林尚呈高端网站建设,上海企业网站排名优化,嵌入式培训总结在Java中#xff0c;装饰器模式允许我们动态地给对象添加新的行为或责任#xff0c;而无需修改原有类。以下是一个简单的装饰器模式示例#xff0c;我们将模拟一个咖啡销售系统#xff0c;其中基础饮料类#xff08;Component#xff09;是Coffee#xff0c;装饰器类装饰器模式允许我们动态地给对象添加新的行为或责任而无需修改原有类。以下是一个简单的装饰器模式示例我们将模拟一个咖啡销售系统其中基础饮料类Component是Coffee装饰器类Decorator用来添加额外的调料。 首先定义抽象组件——基础咖啡接口 // 抽象组件Component public interface Coffee {double getCost(); // 获取咖啡价格String getDescription(); // 获取咖啡描述 }// 具体组件ConcreteComponent public class SimpleCoffee implements Coffee {Overridepublic double getCost() {return 1.0; // 基础咖啡的价格}Overridepublic String getDescription() {return Simple Coffee; // 基础咖啡的描述} } 接下来创建装饰器接口 // 装饰器接口Decorator public abstract class CoffeeDecorator implements Coffee {protected Coffee coffee; // 维持对组件对象的引用public CoffeeDecorator(Coffee coffee) {this.coffee coffee;}Overridepublic double getCost() {return coffee.getCost(); // 默认调用原始咖啡的价格}Overridepublic String getDescription() {return coffee.getDescription(); // 默认调用原始咖啡的描述} } 然后我们创建几个具体的装饰器类它们会附加额外的功能比如添加糖、奶或者巧克力 // 具体装饰器 - 添加糖 public class SugarDecorator extends CoffeeDecorator {private static final double SUGAR_COST 0.25;public SugarDecorator(Coffee coffee) {super(coffee);}Overridepublic double getCost() {return super.getCost() SUGAR_COST; // 在原始咖啡价格基础上增加糖的成本}Overridepublic String getDescription() {return coffee.getDescription() , With Sugar; // 更新描述信息} }// 具体装饰器 - 添加牛奶 public class MilkDecorator extends CoffeeDecorator {private static final double MILK_COST 0.5;public MilkDecorator(Coffee coffee) {super(coffee);}Overridepublic double getCost() {return super.getCost() MILK_COST; // 在原始咖啡价格基础上增加牛奶的成本}Overridepublic String getDescription() {return coffee.getDescription() , With Milk; // 更新描述信息} }// 可以继续定义其他装饰器如ChocolateDecorator等... 最后在客户端代码中我们可以动态地构建不同口味的咖啡 public class CoffeeShop {public static void main(String[] args) {Coffee simpleCoffee new SimpleCoffee();System.out.println(simpleCoffee.getDescription() costs: simpleCoffee.getCost());Coffee coffeeWithSugar new SugarDecorator(simpleCoffee);System.out.println(coffeeWithSugar.getDescription() costs: coffeeWithSugar.getCost());Coffee coffeeWithMilkAndSugar new MilkDecorator(coffeeWithSugar);System.out.println(coffeeWithMilkAndSugar.getDescription() costs: coffeeWithMilkAndSugar.getCost());} } 运行上述代码后将会输出每种咖啡的描述和对应的价格展示了如何通过装饰器模式动态地添加不同的调料并计算总成本。
http://www.pierceye.com/news/829860/

相关文章:

  • 行情网免费网站大全wordpress 头像上传路径
  • 网站开发联系方式做网站如何提需求
  • 小程序定制团队seo顾问推推蛙
  • 徐州网站建设公司哪家好经典广告
  • 百度的官方网站wordpress提示插件安装
  • 网站的按钮怎么做 视频宁波网站建设用什么软件
  • 宜宾市做网站多少钱老板办公室装修效果图
  • 如何将网站挂载域名手机网站布局教程
  • 哪个网站可以做销售记录公司经营范围分类目录
  • dw网站的站点建设怎么百度做网站
  • 在家做网站设计国土局网站建设经验
  • 营销型网站报价商丘做网站推广的公司
  • 宜昌网站开发公司wordpress简洁响应试
  • 彩票型网站建设网站建设用宝塔
  • 建筑企业网站要简约大气吗零基础网站建设教学服务
  • 苏州网站开发建设方案cms系统介绍
  • 网站右边悬浮代码app开发费用报价表
  • 免费做电子相册的网站it网站建设
  • 网站建设是什么?南京文化云网站建设
  • 对比色网站设计wordpress 文件重命名
  • 企业免费网站建设模板怎么注册公司 需多少钱
  • 珠海网站建设厚瑜如何做推广网站
  • 山东省城乡建设部网站首页给了几张图让做网站
  • 吉林省建设标准化网站最新网球赛事新闻
  • eclipse tomcat 网站开发微信公众号手机怎么登录
  • 苏州市吴江区住房和城乡建设局网站网站建设需要具备什么条件
  • 用记事本做网站怎么添加表格媒体库wordpress
  • 河北智能网站建设网站建设 书
  • 个人网站模板怎么做网站开发接私活的经理
  • 律师事务所手机网站网站开发过程模型