<设计模式>(2)装饰模式
装饰模式
概念
在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
类图
说明
以上是贪吃蛇重生时的部分模型,以前的逻辑是执行relive()方式进行重生,现在,用装饰模式增加了一个复活时增加保护盾的方法.图中绿色标识的类为被装饰类,蓝色标识的类为装饰类,装饰与被装饰类继承同一接口,使用组合将他们组合到一起,避免了单一继承.
应用
spring中的aop切面编程
优缺点
优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。
缺点:多层装饰比较复杂以上内容均为个人观点,欢迎批评指正.