重写设计模式——装饰器模式

为什么要重写?其实设计模式已经被写烂了,基本上,网络上都是一抄一大篇,当然,我之前也是用了很多别人的文章(还好备注了,是别人写的,不然就是抄袭了)!我重写的原因,其实是想加入一些自己平时学习,工作中,遇到的情况。然后怎么想到用这个模式,或者我用了某个模式,后来一查,卧槽,原来早就有人这么用了。

还是先说一下吧,其实,之前看过装饰器模式,但是,当时比较菜,看不太懂。倒也不是完全看不懂,而是,某一个点卡住了,没懂,然后就不懂了。这一篇,我不会去讲太多理论的东西,我会讲一些细节,这些细节往往是很多菜鸟同学不懂的地方。

ok,开始了,先来一张图吧(ps最近在学uml建模,就随便实践一下了)


重写设计模式——装饰器模式_第1张图片

这个图,就是描述了,装饰器模式的基本类结构,和继承关系。还有解释,这个就不多说了吧。

下面跟着我,根据这个类图,去实现代码吧,相信我,很简单。


重写设计模式——装饰器模式_第2张图片


重写设计模式——装饰器模式_第3张图片


重写设计模式——装饰器模式_第4张图片


重写设计模式——装饰器模式_第5张图片


重写设计模式——装饰器模式_第6张图片


重写设计模式——装饰器模式_第7张图片


重写设计模式——装饰器模式_第8张图片

这个过程,和结果,很清楚了吧,重点,我也在图中有说明了。

最后,应该不需要我再解释了吧。其实装饰器模式,是对方法的扩展。举个我们生活中的例子,比如LOL吧,里面有英雄,英雄有普通攻击。这个普通攻击,就是组件,我英雄得到了一个红爸爸,那之后,我的普功就附带了减速效果,这个减速效果,就是装饰器扩展的方法。就是说,普通攻击,只是减对方血,有了红爸爸这个装饰,普通攻击,不仅可以减血还可以减速了。

你可能感兴趣的:(重写设计模式——装饰器模式)