装饰器模式和代理模式的区别
装饰器模式和代理模式,UML类图上是一样的,结构是一样的,主要区别在于他们的目的不一样,真实使用场景不一样。
例如,抽象被装饰者为 Interface IA,被装饰者A,装饰者是A1,A2,A3,A4,我们代码里可能对A装饰多次,例如 new A1(A),new A2(A1),new A3(A2),new A4(A3),最终结果还是IA,但已经附加了很多装饰,
而代理我们一般只是一次代理,不会多次代理。
装饰器模式和代理模式,UML类图上是一样的,结构是一样的,主要区别在于他们的目的不一样,真实使用场景不一样。
例如,抽象被装饰者为 Interface IA,被装饰者A,装饰者是A1,A2,A3,A4,我们代码里可能对A装饰多次,例如 new A1(A),new A2(A1),new A3(A2),new A4(A3),最终结果还是IA,但已经附加了很多装饰,
而代理我们一般只是一次代理,不会多次代理。