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

商务网站推广目标有哪些广东建设厅官网查询平台

商务网站推广目标有哪些,广东建设厅官网查询平台,沈阳做企业网站哪家好,cms免费源码装饰器模式是一种结构型设计模式,它允许动态地将责任附加到对象上。装饰器模式是通过创建一个包装对象,也就是装饰器,来包裹真实对象,从而实现对真实对象的功能增强。装饰器模式可以在不修改原有对象的情况下,动态地添…

装饰器模式是一种结构型设计模式,它允许动态地将责任附加到对象上。装饰器模式是通过创建一个包装对象,也就是装饰器,来包裹真实对象,从而实现对真实对象的功能增强。装饰器模式可以在不修改原有对象的情况下,动态地添加功能。

装饰器模式通常由以下几个组件组成:

1.Component(组件接口):定义了一个对象接口,可以给这些对象动态地添加职责。

2.ConcreteComponent(具体组件):实现了组件接口,是被装饰的对象。

3.Decorator(装饰器抽象类):持有一个指向组件对象的引用,并实现了组件接口。通常是一个抽象类,用于定义装饰器的基本行为。

4.ConcreteDecorator(具体装饰器):扩展了装饰器抽象类,实现了具体的装饰功能。

开始上代码
首先我们定义一个咖啡

// 组件接口
interface Coffee {double cost();String getDescription();
}

咖啡分很多种类,我们先来一个浓缩咖啡

// 具体组件 - 浓缩咖啡
class Espresso implements Coffee {@Overridepublic double cost() {return 1.5;}@Overridepublic String getDescription() {return "Espresso";}
}

然后我觉得浓缩咖啡有点苦,所以我想加点糖和牛奶
所以这里我们要开始上装饰器了

// 装饰器抽象类
abstract class CoffeeDecorator implements Coffee {protected Coffee coffee;public CoffeeDecorator(Coffee coffee) {this.coffee = coffee;}@Overridepublic double cost() {return coffee.cost();}@Overridepublic String getDescription() {return coffee.getDescription();}
}

加奶的装饰器

// 具体装饰器 - 加牛奶
class Milk extends CoffeeDecorator {public Milk(Coffee coffee) {super(coffee);}@Overridepublic double cost() {return super.cost() + 0.5;}@Overridepublic String getDescription() {return super.getDescription() + ", Milk";}
}

加糖的装饰器

// 具体装饰器 - 加糖
class Sugar extends CoffeeDecorator {public Sugar(Coffee coffee) {super(coffee);}@Overridepublic double cost() {return super.cost() + 0.2;}@Overridepublic String getDescription() {return super.getDescription() + ", Sugar";}
}

然后测试一下

public class Test {public static void main(String[] args) {// 点一杯浓缩咖啡Coffee espresso = new Espresso();System.out.println("Espresso: " + espresso.getDescription() + " - Cost: $" + espresso.cost());// 加牛奶Coffee espressoWithMilk = new Milk(espresso);System.out.println("Espresso with Milk: " + espressoWithMilk.getDescription() + " - Cost: $" + espressoWithMilk.cost());// 加糖Coffee espressoWithSugar = new Sugar(espresso);System.out.println("Espresso with Sugar: " + espressoWithSugar.getDescription() + " - Cost: $" + espressoWithSugar.cost());// 加牛奶和糖Coffee espressoWithMilkAndSugar = new Sugar(new Milk(espresso));System.out.println("Espresso with Milk and Sugar: " + espressoWithMilkAndSugar.getDescription() + " - Cost: $" + espressoWithMilkAndSugar.cost());}
}

运行结果

在这里插入图片描述

可以发现这个模式很好理解,看起来也比较实用的样子

http://www.yayakq.cn/news/612661/

相关文章:

  • 番禺网站建设技术游戏建设网站
  • 拼团购物网站开发做网站挂广告
  • wap网站建设兴田德润优惠网站申请备案流程
  • 网站的颜色2021年经典营销案例
  • 网站建设厌倦重庆建设监理协会网站
  • 微信公众号制作方法河南网站关键词优化
  • 建设部网站 造价精品建站
  • 济南网站建设平台官网icp备案是网站上线前
  • 电子商务网站建设期末试题微信公众号怎么创建优惠券
  • rp如何做网站专业做私募网站
  • 15年做哪些网站致富怎样设计自己的网站
  • 免费学校网站模板htmlapp制作免费
  • 丹东建设网官方网站建设工程造价信息网站
  • 塑料公司网站建设方案wordpress中文连接
  • wordpress 插件站做企业网站的前景
  • 商场大型话题活动策划网站平台已经维护6天了
  • 淄博专业网站建设哪家好北京外企人力资源服务有限公司
  • 微擎如何做网站郑州高端网站公司
  • 网站建设后期维护流程网页制作教程软件
  • 做网站公司的前景网页游戏大全双人
  • 企业网站seo诊断工具1688自然排名怎么做好
  • 遵义市双控体系建设网站视频网站建设 可行性报告
  • 惠州网站建设多少钱整站优化代理
  • 免费自助建站源码甘肃省住房建设厅户网站
  • wordpress多文章福州短视频seo费用
  • 长沙自适应网站制作代理网址域名
  • 网站标题字体手表电商网站
  • 做网站是怎样赚钱网页美工设计与制作
  • 网上接网站做WordPress显示网站加载时间
  • 怎样办网站张店区创业孵化中心有做网站的吗