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

设计模式-装饰者模式

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

首先 我们根据咖啡为例子   

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

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

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

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

5.类的实现

1. 咖啡接口

2.基础咖啡描述

3.基础款的抽象咖啡类

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

4. 装饰者 牛奶咖啡类

5.实现测试

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

额外解释

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

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


http://www.kler.cn/news/315908.html

相关文章:

  • VMware虚拟机经常性卡死,打开运行一段时间后卡死,CPU占比增至100%
  • 电脑网络怎么弄动态ip :步骤详解与优势探讨
  • Tomcat系列漏洞复现
  • AI时代最好的编程语言应该选择谁?
  • vue h5 蓝牙连接 webBluetooth API
  • MySQL 中删除重复的数据并只保留一条
  • C#实现指南:将文件夹与exe合并为一个exe
  • vscode 环境搭建
  • 神经网络修剪实战
  • ubuntu安装docker compose
  • 解决 TortoiseGitPlink Fatal Error:深入解析
  • JS巧用.padStart()|.padEnd()方法用另一个字符串填充当前字符串
  • 9月16日笔记
  • 工作笔记:Vue 3 中使用 vue-router 进行导航与监听路由变化
  • 关于 Qt运行加载内存较大崩溃添加扩大运行内存 的解决方法
  • 使用Stream实现事件流
  • Django一分钟:借助Django的认证系统快速实现RBAC权限校验以及Session会话
  • 深入浅出:Eclipse 中配置 Maven 与 Spark 应用开发全指南
  • 一个能同时to B和to C、批发零售一体化的需求分析和系统设计
  • 达梦数据库对象管理(三):索引
  • 使用vue创建项目
  • 蓝桥杯模块一:LED指示灯的基本控制
  • JavaEE: 深入探索TCP网络编程的奇妙世界(四)
  • 视频工具EasyDarwin将本地视频生成RTSP给WVP拉流列表
  • 基于51单片机的手环设计仿真
  • LeetCode 热题 100 回顾8
  • 【STM32】TIM定时器定时中断与定时器外部时钟的使用
  • ICM20948 DMP代码详解(38)
  • go libreoffice word 转pdf
  • 耦合微带线单元的网络参量和等效电路公式推导