设计模式之装饰模式
时间:2022-04-29
本文章向大家介绍设计模式之装饰模式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
其中一个配料类代码:
public class Fruit extends AbstractDrinkDecorator {
public Fruit(Drink drink) {
super(drink);
}
@Override
public double price() {
return 1.5 + drink.price();
}
@Override
public String destribe() {
return drink.destribe() + " 加果粒 ";
}
测试:
public static void main(String[] args) {
Drink drink = new Coffee();
System.out.println("给我给我来一杯:" + drink.destribe());
System.out.println("您好,价格为:" + drink.price());
drink = new Sugar(drink);
System.out.println("给我来一杯:" + drink.destribe());
System.out.println("您好,价格为:" + drink.price());
drink = new Ice(drink);
System.out.println("给我来一杯:" + drink.destribe());
System.out.println("您好,价格为:" + drink.price());
drink = new Fruit(drink);
System.out.println("给我来一杯:" + drink.destribe());
System.out.println("您好,价格为:" + drink.price());
System.out.println("-----------------");
drink = new Coco();
System.out.println("给我来一杯:" + drink.destribe());
System.out.println("您好,价格为:" + drink.price());
drink = new Ice(drink);
System.out.println("给我来一杯:" + drink.destribe());
System.out.println("您好,价格为:" + drink.price());
}
console:
给我给我来一杯:咖啡
您好,价格为:8.5
给我来一杯:咖啡 加糖
您好,价格为:9.0
给我来一杯:咖啡 加糖 加冰
您好,价格为:9.5
给我来一杯:咖啡 加糖 加冰 加果粒
您好,价格为:11.0
-----------------
给我来一杯:可乐
您好,价格为:3.5
给我来一杯:可乐 加冰
您好,价格为:4.0
- Android Material Design系列之FloatingActionButton和Snackbar
- Fluent Nhibernate之旅(五)--利用AutoMapping进行简单开发
- Android Material Design系列之Toolbar
- Struts2 S2-020在Tomcat 8下的命令执行分析
- Struts2再曝S2-020补丁绕过漏洞 – 万恶的正则表达式
- 学习BlogEngine.Net解读笔记系列(一)
- Android面试系列之应用内多语言切换
- Android面试系列之AsyncTask
- Kali-Linux扩充弹药:Kali Linux metapackages
- 使用HackRF解调TDD-LTE信号
- 一个优秀的Android应用从建项目开始
- Ruby OpenSSL 私钥伪造脚本
- 基于 k8s 的 Jenkins 构建集群实践
- Visual C#.Net网络程序开发-Tcp篇(1) 祥细内容:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法