代理模式的一点思考---答复: 设计模式--代理模式
http://www.iteye.com/topic/517835?page=2
?
代理模式通常是对原有对象的控制,不会增加新的行为,比如说原来干什么还是干什么,常见的比如cglib加上事务机制,但是没有增加新的行为,原有的服务未变。但是装饰模式通常会加上新的行为,而且行为可以动态进行组合,可以有任意顺序,比如给墙刷颜色,先刷底色,再刷红色,再刷绿色,也可以先刷底色,再刷绿色,再刷红色。
?
?
?代理模式和装饰模式都可以构造成在新类中引用对原有类,构成原有类的委托,这样就可以对原有类进行控制了,可以加新的行为,也可以加上其他控制。
?
不过有一点疑问,代理者和被代理者是聚合关系吗??聚合关系是整体和局部的关系,但是离开整体局部还可以生存,比如飞机场和飞机,代理模式两者关系,我觉得应该是依赖关系,更像是user-a关系,正因为是依赖关系,所以我们使用接口进行了解耦,而不是显示依赖直接注入实现类 。