装饰者模式
官方解释:……
个人理解:如果要把多个类组合在一起,形成新的对象,除了使用继承然后多态,使用装饰者模式更加合适,不过据说这样的话,会出现很多的小类,导致代码的可理解性变差……
小实例: 技术支持中心的“老成员”们都有一起吃鸡蛋炒拉面的经历,这不,拉面店的老板要把他的生意“信息化、自动化”。拉面店大约有三四十种拉面吧,其中拉面都是一样的,只不过放进的佐料不同而已,比如:牛肉炒拉面、鸡蛋炒碰面等等。这情形最适合装饰者模式了。 画个图吧
上面的图是HeadFirst电子书里的,自己偷了个小懒,没有重新去画,于是上面的图只是介绍装饰者模式的,和下面的代码原理一样,不过不是下面代码的类图:
装饰者们的代码:
测试一下吧:
测试结果截图: