首先我们对装饰器模式加上一个生活化场景。假设做蛋糕是一个流水化的工程。当做完蛋糕坯的时候接下来就是在外边加上奶油。设有几个A 拿到 (蛋糕坯)蛋糕-在外部涂抹奶油B 拿到 (A处理完的)蛋糕在蛋糕上绘制花朵C 拿到 (B处理完的)蛋糕加上 用户定制的文字如 XXX 生日快乐。D 拿到 (C处理完的)蛋糕加上铲子和蜡烛盘子这些辅助工具E 拿到 (D处理完的)蛋糕加上包装盒蛋糕还是原来的蛋糕只是入了五个人的手层层装裱这种情境就是装饰器模式要搞定的。装饰器模式的代码案例蛋糕 蛋糕坯 new 蛋糕() 奶油装饰 奶油装饰 new 奶油装饰(蛋糕坯) 花朵装饰 花朵装饰 new 花朵装饰(奶油装饰) 文字装饰 文字装饰 new 文字装饰(花朵装饰) 辅助工具 辅助工具 new 辅助工具(文字装饰) 包装盒 包装盒 new 包装盒(辅助工具) //干活 包装盒.干活() //你做出来了一个好看的生日蛋糕 //----当然如果你想偷工减料省成本则砍掉一些装饰环节也行。---- 蛋糕 蛋糕坯 new 蛋糕() 包装盒 包装盒 new 包装盒(蛋糕坯) 包装盒.干活() //你做出来了一个让用户忍不住投诉的蛋糕。从表面上看大致就是这么干活的。装饰器的类关系要完成上述的能力我们得设计一下怎么实现。自然而然就带出装饰器的核心了。