23种设计模式之装饰者模式—用卖丹药的苦恼来举例

装饰者模式

在地球的修真者所生活结界世界中,早已经引入世俗界的商业模式,尤其是电脑这种高科技已经被各大宗门的丹药阁所使用。

最近天门宗的丹药阁阁主犯了难,他炼出了一些丹药以及丹云,丹云可以装饰丹药,可以提升丹药的吸收率,但阁主不知道怎么把丹药输入电脑中进行很好的搭配来卖出。

因为一个丹药可以搭配多种丹云,如果有n种丹药,n种丹云,光是1丹药搭配1丹云都有nn种,更别1种丹药可以搭配多种丹云,这样的搭配种类数会提升不知多少。*

怎么办呢,这时一个修真架构师来了,说简单啊,阁主,咱们可以使用世俗界的一种设计模式–装饰者模式呀,不得不说凡人还是很聪明的。架构师凌空一指,飞来一台联想牌电脑,架构师说:我修为不高,只能使用这样的垃圾电脑,阁主莫怪,我用代码给您讲解。

  • 定义:

    • 动态的将新功能附加到对象上,在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则
  • 原理

    • 装饰者模式就像打包一个快递
      • 主体:比如:陶瓷、衣服——-被装饰者
      • 包装:比如: 纸填充、塑料泡沫、纸板、木板
  • 示例:

    • 在天门宗的丹药阁购买丹药,丹药有一品筑基丹、一品练气丹,一品金丹进阶丹,有用于装饰的丹云,比如:火属性丹云、木属性丹云、土属性丹云。每一种丹药可以搭配多种丹云被售出,当然,单独卖出一个丹药也是可以的,随修真者自己选择性购买并搭配。

    • 抽象的丹药类:

    • 进阶丹类(用于提取进阶丹种类共同的属性,方法)

    • 一品筑基丹

    • 一品练气丹

    • 一品金丹进阶丹

    • 装饰者(丹云)

    • 土属性丹云

    • 木属性丹云

    • 火属性丹云

    • 顾客:修真者甲

    • 23种设计模式之装饰者模式---用卖丹药的苦恼来举例
      “瞧,阁主,这样搭配丹药就方便多了,如果增加丹药种类比如一品元婴丹,我只需要写一个一品元婴丹类继承进阶丹就可以了,满足了开闭原则,而且丹药可以直接跟多种丹云搭配,且不影响丹云的代码,这样岂不是太棒了”
  • 应用:在Java的IO结构,FilerInputStream就是一个装饰者

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91985 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月19日
下一篇 2020年3月19日

相关推荐