是继承的有力补充,在需要增加多个功能的情况下,需要生成多个子类,增加系统的复杂度,而且这些类是在编译的时候就生成的,而装饰者是在运行的时候,动态的增加对象的功能。装饰者扩展的顺序不一样,实现的效果也不一样。