代理模式与装饰模式的区别

代理模式和装饰者模式上在语法形式上几乎完全一样,那么它们的区别在哪里呢?
装饰者模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更加灵活
代理模式:为其它对象提供一种代理以控制对这个对象的访问。

其实,它们的着重点一个在于“增加”职责,另一个在于“控制”访问。这是它们最本质的区别。

由此可以看到:学习设计模式重点在于“语义”上把握,而不是追求它的“形式。

代理模式的UML



  

装饰模式的UML




 
 

猜你喜欢

转载自jtlyuan.iteye.com/blog/1262741