请教高手, 到底什么时候需要用到代理模式

时间:2022-09-16 16:00:50
我大概知道代理模式是怎么回事了,但是问题是到底什么场合用这个模式有好处? 
我记得几年前用J2EE开发了一个网站,里面的用户注册就是用代理模式,但是现在竟然一点印象都没有了

8 个解决方案

#1


想改变一个类的行为,但是接口又是相同的时候.
最简单的代码就是继承自另一个类或者实现同一个接口, 实现相同的函数,但是函数的行为不同.
又分成一般的代码与动态代码.

#2


该回复于2009-06-25 16:39:31被版主删除

#3


引用 1 楼 Inhibitory 的回复:
想改变一个类的行为,但是接口又是相同的时候. 
最简单的代码就是继承自另一个类或者实现同一个接口, 实现相同的函数,但是函数的行为不同. 
又分成一般的代码与动态代码.

没明白。。。。。。。。。

#4


想想数据库连接池中连接的那个close方法, 普通的Connection的close方法是关闭连接, 而连接池中的连接的close方法只是把连接放回连接池, 而没有关闭连接, 这里就是使用了代理, 改变了Connection的close方法的行为.

#5


还有么^_^

#6


学习下。

#7


代理的应用有:
 (1) 远程代理  为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实
 (2) 虚拟代理  根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象
 (3) 安全代理  用来控制真实对象访问时的权限
 (4) 智能指引  调用真实对象时,代理处理另外一些事

#8


本人理解:代理有很多好处,比如一个已经在跑的系统,出现了一点问题,我们会采用代理模式或直接修改源代码。
直接修改源代码的最大隐患在于对别的系统功能造成不可预知的错误。
但通过代理模式,相当于在错误部位截断,然后修正错误,在继续运行程序,从而不对老系统造成任何的伤害。
代理在其中充当了‘桥梁作用’。

#1


想改变一个类的行为,但是接口又是相同的时候.
最简单的代码就是继承自另一个类或者实现同一个接口, 实现相同的函数,但是函数的行为不同.
又分成一般的代码与动态代码.

#2


该回复于2009-06-25 16:39:31被版主删除

#3


引用 1 楼 Inhibitory 的回复:
想改变一个类的行为,但是接口又是相同的时候. 
最简单的代码就是继承自另一个类或者实现同一个接口, 实现相同的函数,但是函数的行为不同. 
又分成一般的代码与动态代码.

没明白。。。。。。。。。

#4


想想数据库连接池中连接的那个close方法, 普通的Connection的close方法是关闭连接, 而连接池中的连接的close方法只是把连接放回连接池, 而没有关闭连接, 这里就是使用了代理, 改变了Connection的close方法的行为.

#5


还有么^_^

#6


学习下。

#7


代理的应用有:
 (1) 远程代理  为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实
 (2) 虚拟代理  根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象
 (3) 安全代理  用来控制真实对象访问时的权限
 (4) 智能指引  调用真实对象时,代理处理另外一些事

#8


本人理解:代理有很多好处,比如一个已经在跑的系统,出现了一点问题,我们会采用代理模式或直接修改源代码。
直接修改源代码的最大隐患在于对别的系统功能造成不可预知的错误。
但通过代理模式,相当于在错误部位截断,然后修正错误,在继续运行程序,从而不对老系统造成任何的伤害。
代理在其中充当了‘桥梁作用’。