设计模式-装饰者模式

装饰者模式,顾名思义 就是对一个类进行装饰,装饰类叫做装饰者

首先 我们根据咖啡为例子

  1. 我们进去一个咖啡店 (咖啡接口)

2.咖啡店 的这款基础咖啡的描述 (实现咖啡接口的 基础咖啡类)

3.有一个基础款式的咖啡,我们后面点的所有咖啡都会在这款基础咖啡上进行修改(同时也是我们 的被装饰的类,)

  1. 我们现在 不想要基础款的咖啡,现在我们想要牛奶咖啡,并且加糖,那么我们就要 把基础咖啡 装饰成 牛奶咖啡,然后加糖 ,我们新写一个牛奶咖啡类来当装饰者,装饰这款基础咖啡,并且加上条件

5.类的实现

1. 咖啡接口

2.基础咖啡描述

3.基础款的抽象咖啡类

写该类的时候需要注意的是 我们 构造方法传入的 是接口的实现类,然后调用的 接口实现类的方法

4. 装饰者 牛奶咖啡类

5.实现测试

后面我们想要 冰美式咖啡,或者其他的款式的咖啡,我们只需要多创建一个该类,继承该抽象咖啡类装饰即可

额外解释

如果好奇为什么这种 new simplecoff 为什么能够直接被调用方法,那么我们也可以这样看

实际上我们测试类传入的new simplecoffee 类 直接传参给我们的抽象类,通过抽象类来进行调用方法,这个simplecoffee 实例实际上被传到抽象类的coffee引用当中

相关推荐
能摆一天是一天几秒前
Spring ai vectorstore 使用本地模型导致只能匹配可行度为1.0的内容的解决方法笔记
java·笔记·spring
我命由我1234518 分钟前
方差(实例实操、与标准差的区别)
java·数据结构·算法·数据分析·java-ee·intellij-idea·idea
Java内核笔记18 分钟前
Spring Security 源码解析(八)方法安全授权与自定义扩展:@EnableMethodSecurity、AOP、SpEL 全链路
java·后端
自由的裙子19 分钟前
How-To: Using the N* Stack, part 4
java·jvm·oracle
什巳1 小时前
JAVA练习275-乘积最大子数组
java·开发语言·数据结构·算法
lang201509281 小时前
Apache POI Word(docx) 实战教程:从入门到精通表格合并、图片插入与文档合并
java·开发语言·word
小牛不牛的程序员1 小时前
利用Claude Code构建自动化需求挖掘工具:从原理到实践
java·算法·自动化
Robot_Nav1 小时前
C++ 面试常问问题汇总:基础语法、面向对象、STL、多线程与设计模式
c++·设计模式·面试
wear工程师1 小时前
腾讯天美一面:从 HashMap 到 Spring 事务,面试官这套连环问到底在考什么
java·面试
浩瀚地学2 小时前
【Java基础复习】IO流(二)
java·开发语言·经验分享·笔记·学习