本来想上周末没能用DELPHI实现动态代理就算了,可是这几天却始终放不下这个想法,这实在是一个太美妙的想法了。而且在认真看了VCL对SOAP的实现后,现在至少有九成的把握可以实现这样一个动态代理。
那么动态代理有什么用?
这要先从GoF的Proxy模式说起。
假设有下面这样一个接口及其实现:
现在,如果你是这个接口的用户,而这个接口及其实现者提供了一个:
Foo : IFoo;
给你,其中Foo指向TFooImpl的一个实例。现在你有了IFoo的定义,和这个Foo实例--注意,你没有TFooImpl的定义和实现代码。如果现在要求你为所有的IFoo.doSth增加事务功能(假设doSth被实现为对数据库作更新操作),要怎么办?
GoF的Proxy模式就是解决方案之一:
如果所示...[ 查看全文 ]