当前位置:网站首页>【DesignMode】装饰者模式(Decorator pattern)
【DesignMode】装饰者模式(Decorator pattern)
2022-07-05 23:57:00 【weixin_43224306】
基本介绍
装饰者模式:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp)
这里提到的动态的将新功能附加到对象和 ocp 原则,在后面的应用实例上会以代码的形式体现,请同学们注意体会。
1.星巴克咖啡订单项目(咖啡馆):
咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡)
调料:Milk、Soy(豆浆)、Chocolate
要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便
使用 OO 的来计算不同种类咖啡的费用: 客户可以点单品咖啡,也可以单品咖啡+调料组合。
2. 方案 1-解决星巴克咖啡订单项目
比较差的方案1
类图:
3. 方案 1-解决星巴克咖啡订单问题分析
Drink 是一个抽象类,表示饮料
des 就是对咖啡的描述, 比如咖啡的名字
cost() 方法就是计算费用,Drink 类中做成一个抽象方法. 4) Decaf 就是单品咖啡, 继承 Drink, 并实现 cost
Espres
边栏推荐
猜你喜欢
Teach you to run uni app with simulator on hbuilderx, conscience teaching!!!
China Jinmao online electronic signature, accelerating the digitization of real estate business
Doppler effect (Doppler shift)
认识提取与显示梅尔谱图的小实验(观察不同y_axis和x_axis的区别)
行列式学习笔记(一)
GFS distributed file system
Initialize your vector & initializer with a list_ List introduction
【LeetCode】5. Valid palindrome
Bao Yan notes II software engineering and calculation volume II (Chapter 13-16)
多普勒效应(多普勒频移)
随机推荐
【在线聊天】原来微信小程序也能回复Facebook主页消息!
Bao Yan notes II software engineering and calculation volume II (Chapter 13-16)
云呐|固定资产管理系统主要操作流程有哪些
Spire. PDF for NET 8.7.2
DEJA_VU3D - Cesium功能集 之 055-国内外各厂商地图服务地址汇总说明
Zhuan: in the future, such an organization can withstand the risks
wx.getLocation(Object object)申请方法,最新版
Fiddler Everywhere 3.2.1 Crack
Which side projects can be achieved? Is it difficult for we media to earn more than 10000 a month?
QT a simple word document editor
Initialiser votre vecteur & initialisateur avec une liste Introduction à la Liste
What are Yunna's fixed asset management systems?
4 points tell you the advantages of the combination of real-time chat and chat robots
Configuring OSPF GR features for Huawei devices
Cloudcompare & PCL point cloud randomly adds noise
云呐|固定资产管理系统功能包括哪些?
第16章 OAuth2AuthorizationRequestRedirectWebFilter源码解析
PADS ROUTER 使用技巧小记
C # input how many cards are there in each of the four colors.
C reflection and type