Delphi项目框架设计
可能我们已开始学习使用delphi的时候,往往在项目里面使用全局变量,比如 datamoudle 单元 ,比如自己定义一个全局变量单元,虽然看上去简单,
但是实际上是很危险的,任何引用了改单元的都可以修改这些值。既然delphi是OO的,为什么不用object 实现全局变量呢?
下面就是我的设想,假设某项目由 Splash ,Login ,MDI Main ,MdiChild ,Modal 窗口组成。
1.设计期,我们使用datamoudle 单元添加connection ,以实现dataset等的数据感知。
2.之后,我们修改我们的程序,
a>给dpr 添加一个全局对象 GEnv
b>给每个form单元添加一个private 变量 FEnv ,一个private SetEnv(Value:TEnv); 再用property 设置其值
c>实现一个全局变量对象 TEnv ,里面包存 Connection ,权限 ,登陆用户 ,密码 等数据
d>在 dpr 将 GEnv 传递给 Splash ,Login ,Main 窗体
e> 在 Main 窗体 将自身FEnv 传递给所有 Mdi Child 窗体类 ,Modal 类窗体类
f> 每个类在onclose 释放 FEnv 变量
g> dpr 最后释放全局 GEnv 对象变量。
同理 ,我们可以在Php ,Java ,C++ 等OO 语言也可以使用这一模式。
欢迎砖块。