
装饰者模式可以很好的控制子类的暴涨,类的层次结构大小和复杂度有了很大程度的降低。
下面我用一个比较简单的例子给大家介绍装饰者模式的使用。
我们响应组有“部长”,“组长”,这两种人物会很多技能,比如编程,网站建设,电脑维修,网络安全。
有的“部长”会一项技能,有的“部长”会多项技能,同样,我们的“组长”也是这样。
如果我们对每个人物都设计一个类,那么我们的子类将会爆涨,不利于用户的使用。
现在有个办法可以解决。我们设计“部长类”,“组长类”,再设计几个“技能类”,我们用“技能类”来
装饰“部长类”或者“组长类”,如果有多项技能,我们就再用一个“技能类”来
装饰它。
比如我们的“部长”,给它添加一个技能后,还可以继续给他添其他技能。
这种装饰模式在java和很常见,比如输入流,大概叫什么来说?ReadBuff...?是这样吗?我也不记得了,我的java不好。还有给一个区域添加滚动条,外边框,都用到了装饰者模式。
我利用一个例子,写了一个代码,大家互相学习一下。