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

做网站 多少钱短信营销

做网站 多少钱,短信营销,移动开发和网站开发,上海餐饮品牌策划公司装饰器模式是一种结构型设计模式,它允许动态地将责任附加到对象上。装饰器模式是通过创建一个包装对象,也就是装饰器,来包裹真实对象,从而实现对真实对象的功能增强。装饰器模式可以在不修改原有对象的情况下,动态地添…

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

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

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.shuangfujiaoyu.com/news/38474.html

相关文章:

  • 做网站找模版好吗关键词广告
  • 自己做网站 需要哪些网店seo名词解释
  • 网站建设招聘启事长沙seo 优化选智投未来no1
  • 国外做油画的网站济南网站制作
  • 网站建设技术实现难点网站收录怎么弄
  • 怎么把网站做漂亮微信营销和微博营销的本质区别
  • 怎嘛做网站武汉seo排名优化
  • 网站开发详细介绍企业建站要多少钱
  • asp服装商城网站源码百度加盟
  • 做网站软件流程网络营销方式有哪几种
  • 做简历的网站有百度推广一天烧多少钱
  • 网页游戏推广网站怎么做竞猜世界杯
  • 代做毕业设计网站有哪些朋友圈广告推广
  • 商城县建设局网站视频号下载器手机版
  • 怎么做网站导航栏农产品营销方案
  • 网络营销的网站百度图片收录提交入口
  • 做搜索引擎的网站有哪些中美关系最新消息
  • 做新疆网站应该做哪方面的网络宣传方式
  • 哪个网站有上门做指甲自己做网站需要多少钱
  • 多语言企业网站源码安卓优化大师下载安装到手机
  • 网站后来功能软件推广平台有哪些
  • 赣州网站建设资讯图床外链生成工具
  • 做网站找谁chrome谷歌浏览器官方下载
  • 做纺织行业的网站新平台推广
  • 网站建设如何添加咨询关联词有哪些
  • 网站 公安局备案 接入单位廊坊seo排名优化
  • php做购物网站系统so导航 抖音
  • 网络营销类网站长沙seo优化首选
  • 农业信息网站建设中国国家人事人才培训网证书查询
  • 淘宝小网站怎么做的最新seo视频教程