Decorator和花式咖啡(一)

Decorator和花式咖啡(一)

首页模拟经营花式咖啡厅更新时间:2024-04-29

这里是“思达巴克”咖啡店,店长又在使用Java研制新产品了……

  1. abstract class 咖啡 {
  2. abstract int 计算价格();
  3. abstract String 描述();
  4. }

研发的最终结果是店里只提供“意式浓缩” “卡布奇诺” “拿铁”“摩卡”“美式”这五种口味的基本咖啡。对于每种咖啡,顾客都可以随意搭配三种配料中的零到多种:奶泡、糖浆和可可粉

但是,店长很快就发现了一个问题!

如果我们使用继承方式来提供所有口味的咖啡,那么借助排列组合公式,总共要创建的咖啡子类一共有50个

倘若某一天,“思达巴克”在配料中又开始提供更多选择,那么类的个数就会比50要大得多……

从上图我们能看出,继承通常不是达到有弹性设计的最佳方式,那么如何用一种巧妙的方式来规避这种子类爆炸的继承呢?

那就使用Decorator模式吧~

Decorator模式能动态地将责任附加到对象上。为了扩展类的功能,Decorator模式提供了有别于继承的另一种选择。

使用Decorator模式(装饰者模式),给爱用继承的人一个全新的设计眼界。你将学会如何使用对象组合的方式,做到在运行时装饰类。

一旦你熟悉了装饰的技巧,你能在不修改任何底层代码的情况下,给你的对象赋予新的职责

具体实现方式,下次相关后续会介绍哟~

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved