Java装饰器怎么写
发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,这篇文章主要介绍了Java装饰器怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java装饰器怎么写文章都会有所收获,下面我们一起来看看吧。//// 模拟咖啡/
千家信息网最后更新 2024年11月14日Java装饰器怎么写
这篇文章主要介绍了Java装饰器怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java装饰器怎么写文章都会有所收获,下面我们一起来看看吧。
//// 模拟咖啡// 1.抽象组件:需要装饰的抽象对象(接口或者抽象父类)// 2.具体组件:需要装饰的对象// 3.抽象装饰类:包含了对抽象组件的引用以及装饰着共有的方法// 4.具体装饰类:被装饰的对象public class TestDecoretorTwo {public static void main(String[] args) {Drink coffee = new coffee();Drink suger = new Suger(coffee);System.out.println(suger.cost() + "--->" + suger.Info());Drink milk = new Milk(coffee);System.out.println(milk.cost() + "--->" + milk.Info());Drink milk1 = new Milk(suger);System.out.println(milk1.cost() + "--->" + milk1.Info()); }}// 1.抽象组件 interface Drink{int cost();String Info(); } // 2.具体组件: class coffee implements Drink{String name="原味咖啡";public int cost() {return 10; }@Override public String Info() {return name; } }// 3.抽象装饰类: class Decorate implements Drink{//对抽象组件的引用 private Drink drink;public Decorate(Drink drink) {//这里是一个构造器(this) this.drink = drink; }@Override public int cost() {return this.drink.cost(); }@Override public String Info() {return this.drink.Info(); } }// 4.具体装饰类1: class Milk extends Decorate{public Milk(Drink drink) {//这里是一个构造器,(super) super(drink); }@Override public int cost() {return super.cost()*4; }@Override public String Info() {return super.Info()+"加入了牛奶"; } }// 4.具体装饰类2: class Suger extends Decorate{public Suger(Drink drink) {super(drink); }@Override public int cost() {return super.cost()*2; }@Override public String Info() {return super.Info()+"加入了蔗糖"; } }
输出结果
20--->原味咖啡加入了蔗糖
40--->原味咖啡加入了牛奶
80--->原味咖啡加入了蔗糖加入了牛奶
关于"Java装饰器怎么写"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Java装饰器怎么写"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
组件
咖啡
原味
对象
牛奶
知识
蔗糖
内容
篇文章
构造器
价值
接口
操作简单
文章
方法
易懂
更多
看吧
结果
行业
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软硬件组合式网络安全方案
数据库011653
服务器最高多少线程
php的服务器ip地址
海东软件开发厂家价格
陕西游戏软件开发
win10版我的世界空岛服务器
站群服务器搭建代理ip教程
湖南造的服务器云主机
数据库创建子表
做软件开发要问甲方的问题
acc数据库定位方法
上海蓉基软件开发网
数据库表中bm
玩英雄联盟服务器不可用是啥情况
软件开发项目设计选题
服务器是美人区的游戏
软件开发工作室的优势
手机版网易版服务器号是多少
网络技术教育应用
莱西分销软件开发哪家便宜
保定服务器租用品牌企业
自动变速箱电脑数据库
sql数据库登录名是什么
达梦数据库知名度高吗
三星服务器内存官网
软件开发工作室的优势
数据库 提取小时
中兴软件开发工程师月薪
华为服务器如何远程管理