码迷,mamicode.com
首页 > 其他好文 > 详细

装饰者设计模式与静态代理设计模式的对比

时间:2016-12-09 11:42:19      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:class   隐藏   声明   业务   实现   span   代理类   family   设计模式   

相同点:

(1) 装饰者类与代理类都需要实现目标类所实现的接口

(2) 装饰者类与代理类中都需要声明目标类对象,目的是这些类中都需要调用目标对象的目标方法

(3) 装饰者类与代理类都可以在不改变目标类的前提下对目标对象进行增强

不同点:

(1) 目的不同:装饰者类的目的就是为了增强目标类;静态代理类的目的是为了保护和隐藏目标对象。

(2) 装饰者类与代理类中都需要声明目标类对象,但对于目标对象的创建方式不同。装饰者类是由带参构造器传入的;代理类中的目标对象,是在无参构造器中直接创建的。

(3) 测试类中,装饰者模式,需要先创建一个目标类对象,再将其通过带参构造器传给装饰者类;代理模式,测试类直接创建代理类对象,测试类根本就看不到业务接口的真正的实现类是谁。

(4) 装饰者类一般不具体增强目标类,而是由具体的装饰者子类进行的增强,并且可以形成“装饰者链”;静态代理类,则是具体的增强的实现,所有的增强功能,一般都是在静态代理类中完成的。

装饰者设计模式与静态代理设计模式的对比

标签:class   隐藏   声明   业务   实现   span   代理类   family   设计模式   

原文地址:http://www.cnblogs.com/peijie1996/p/6148641.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!