设计模式之装饰模式
时间: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
- oAuth 2.0 笔记
- common-pool2 学习:thrift连接池的另一种实现
- IntelliJ IDEA 17和Maven构建javaWeb项目
- spring-boot 速成(2) devtools之热部署及LiveReload
- spring-boot 速成(2) devtools之热部署及LiveReload
- 使用git提交项目
- JavaScript中的内置对象--Number对象
- 自动驾驶落地,究竟被什么绑住了脚?
- JDBC(三)数据库连接池(DBCP、C3P0)
- Single Page Application概览
- HashSet集合中hashCode及equals方法详解
- 企鹅智造企业发展论坛:共话小程序生态下的企业营销
- MySQL(十六)之MySQL用户管理
- JavaScript中this关键字使用
- 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 数组属性和方法
- PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
- PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
- android之json数据过长打印不全问题的解决
- PHP实现时间日期友好显示实现代码
- AndroidStudio插件GsonFormat之Json快速转换JavaBean教程
- android studio错误: 常量字符串过长的解决方式
- Android Shader着色器/渲染器的用法解析
- PHP实现的文件浏览器功能简单示例
- Laravel中正确地返回HTTP状态码方法示例
- Android 实现抖音头像底部弹框效果的实例代码
- Android Studio修改Log信息颜色的实现
- Android 之BottomsheetDialogFragment仿抖音评论底部弹出对话框效果(实例代码)
- Yii框架的路由配置方法分析
- Android 购物车加减功能的实现代码
- Yii框架函数简单用法分析