Delphi

本类阅读TOP10

·分布式网络考试系统原型分析及实现
·游戏外挂设计技术探讨①
·使用HOOK随心监视Windows
·Delphi 水晶报表打包解决
·试题库开发中非文本数据的处理
·如何将几个DBGRID里的内容导入同一个EXCEL表中....的问题
·如何使用Delphi设计强大的服务器程序
·工人线程中关闭窗体的实现
·用DLL方式封装MDI子窗体。
·支持XP下托盘栏气球提示的托盘单元

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
用Delphi实现动态代理(2):设计说明

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

用Delphi实现动态代理(2):设计说明

[Mental Studio]猛禽[Blog]

在上篇《用Delphi实现动态代理(1):概述》中,对动态代理作了一个概要的说明,比如为什么需要这样的动态代理,它有什么用等。本篇将对我实现的这个动态代理的设计思路作一下介绍。
 

一、设计目标

如上篇中这幅动态代理结构图所示:

大致的设计目标有以下几项:

  • TMDynamicProxy可以将任意接口代理到一个通用接口IMInvocationHandler上;
  • IMInvocationHandler的实现不能太复杂,即TMMethodInvocation的定义要尽量简单;
  • IMInvocationHandler要能够实现Remoting,即TMMethodInvocation必须可序列化;
  • 需要一个IMMethodInterceptor接口,以便于实现AOP所需要的各种拦截器;
  • 需要一个TMInterfaceInvoker来把IMInvocationHandler转为正确的对象调用。

从上面列出的目标可以看出,我的目标是要实现一套全新的多层框架,并且几乎是对JAVA世界里最流行的轻量容器的模仿。接下来就说明一下原因所在。
 

二、原因

我之所以对这个动态代理如此热情,源自于对DELPHI下多层技术的愤怒。想想从前在DELPHI开发多层应用有些什么?MIDAS?不可否认,MIDAS是一项很优秀的开发技术,可以在很大程度上简化多层应用的开发。但是正因为它的简单化,所以它跟RAD一样,容易让人在简单化中迷失,而看不到问题的本质--对于这种事情,我喜欢引用老郑的一个经典比喻:就像比基尼泳装,它展示了令人感兴趣的部分,但却隐藏了关键的部分


相关文章

相关软件