装饰模式与代理模式的区别
2020-07-09 本文已影响0人
愈强
在Gof的设计模式一书中,装饰模式(Decorator,又名Wrapper)与代理模式(Proxy,又名Surrogate)都被分类为对象结构型模式。
查看原文中对两种模式的意图描述,可以看出他们的区别:
装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。
代理模式:为其他对象提供一种代理以控制对这个对象的访问。
装饰强调的是为对象增加功能;代理强调的是控制一个对象的访问。