装饰模式(Decorator)的核心思想是指能动态的给一个对象新增功能,而且还能动态撤销。要实现装饰模式,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。这样在装饰对象调用被装饰对象的方法前后就可以动态添加处理逻辑,从而达到装饰的效果。该模式容易产生过多的相似对象,不易排错。