本帖最后由 郭帅帅 于 2014-5-2 13:28 编辑
今天刚看张老师讲解的动态代理,我突然间发现这种代理类和装饰类的思想有些类似,装饰类会调用原类的方法,而代理类也会用到目标类的方法;都是在目标类的基础上添加新功能,而从而达到扩展程序的目的。只不过,动态代理更复杂一些,因为涉及到工厂模式而且还用到了反射;工厂模式和反射机制都是为了提高了程序的灵活性和扩展性;代理类的反射解剖了类中的N多属性和方法信息,以便更多实现细节功能的扩展和添加。代理类都会添加一些系统功能,诸如异常处理,事务管理等等,所以有时候做框架会用到。装饰类是扩展某个小型的类,而代理则是扩展整个程序的;不过代理类看起来还像是一个大型的装饰类,从某种程度来说,代理是装饰思想的延伸,我可以这样理解吗? |
|