Delphi DataModule用法 - 单个还是多个?

use*_*535 7 database delphi delphi-2009 datamodule

您好我正在编写一个应用程序,有各种表单及其相应的数据模块.我写道,他们通过在use classes中提到彼此使用(一个在实现中,另一个在接口中以避免交叉引用)这种方法是错误的吗?为什么或为什么不以这种方式使用?谢谢

小智 9

我必须同意Ldsandon,恕我直言,在你的项目中拥有多个数据模块会更好.如果你把它看作模型 - 视图 - 控制器的东西,你的数据库是模型,你的表单将是视图,你的数据模块将是控制器.

就个人而言,我的项目总是至少有2个数据模块.一个数据模块用于在整个项目中共享Actions,ImageLists,DBConnection,......和其他内容.大多数时候这是我的主要数据模块.

从那以后,我为我的应用程序中的每个"实体"创建一个新的数据模块.例如,如果我的应用程序需要处理或显示订单,cursomters和产品,那么我将为每个人和每个人提供一个Datamodule.

通过这种方式,我可以清楚地分离功能并轻松地重复使用零碎而无需拉入所有内容.如果我需要与客户相关的东西,我只需使用客户数据模块即可.

问候,

斯特凡


小智 6

没关系,特别是如果您要使用相关数据模块的不同实例创建多个相同表单的实例.

请注意VCL设计中的一个小问题:如果您创建两个相同表单及其数据模块的实例,则两个表单都将指向相同的数据模块(由于VLC解析链接的方式),除非您在创建时使用一个小技巧数据模块实例:

  if FDataModule = nil then
  begin
    FDataModule := TMyDataModule.Create(Self);
    FDataModule.Name := '';  // That will avoid pointing to the same datamodule
  end;
Run Code Online (Sandbox Code Playgroud)