(六)、数据模块(DataModules):
uniGUI支持向项目中添加数据模块(DataModules)。它允许开发人员像标准VCL应用程序那样设计他们的应用程序,将应用程序业务逻辑划分为几个数据模块。需要记住的重要一点是,虽然uniGUI数据模块与标准VCL数据模块在本质上是相同的,但是当使用uniGUI向导创建它们时,它们将为每个会话自动管理(其生存期将与会话本身相同)。如果使用标准IDE创建数据模型,则开发人员须要在适当的时候创建并释放它,并且有可能还是各会话共用(如果开发者不额外处理的话),须解决多会话间冲突问题。
uniGUI中有两种类型的数据模块。 分别为:应用程序数据模块(Application DataModule) 与 自由数据模块(Free DataModule)。在下面的章节中,我会分子类进行讲述。
1)、应用程序数据模块(Application DataModule)
应用程序数据模块(Application DataModule)是一个由uniGUI在运行时额外自动生成的,有如下几个特点:
- 它在应用程序运行初始化时注册生成的
- 它是在每个会话的开始或按需创建的(依据属性MainModule.ApplicationDataModuleOptions.CreateOnDemand),一个会话对应一个。
- 如果用户不手动释放(使用Free),则在关闭某对应会话时会相对应的自动释放(属于A会话的,在A会话关闭时,会自动释放A对应的应用程序数据模块)。
需要额外数据模型的小型应用程序(比如,多个MainModule)可能会使用缺省值(CreateOnDemand=False),但是大型应用程序将享受更好的内存管理,可以按需创建数据模型(并尽快释放它们)。
这是应用程序中DataModule自动生成的代码:
unit _AppDM1; |