首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi DataModule使用-单一还是多个?

Delphi DataModule使用-单一还是多个?
EN

Stack Overflow用户
提问于 2010-11-23 22:16:08
回答 4查看 6.3K关注 0票数 8

我正在写一个应用程序,有各种形式和它们相应的数据模块。

我写道,他们通过在uses类中提到彼此(一个在实现中,另一个在接口中以避免交叉引用)来使用对方,这种方法是错误的吗?为什么或者为什么我不应该这样使用呢?

EN

回答 4

Stack Overflow用户

发布于 2010-11-23 23:22:31

我不得不同意Ldsandon的观点,我认为在你的项目中有多个数据模块会更好。如果你把它看作模型-视图-控制器,你的数据库就是模型,你的表单就是视图,你的数据模块就是控制器。

就我个人而言,我的项目中总是至少有两个数据模块。一个数据模块用于共享操作、ImageLists、DBConnection……以及整个项目中的其他东西。大多数情况下,这是我的主要数据模块。

从那时起,我为应用程序中的每个“实体”创建一个新的数据模块。例如,如果我的应用程序需要处理或显示订单、光标和产品,那么我将为每个人提供一个Datamodule。

通过这种方式,我可以清楚地分离功能,并轻松地重用零碎的内容,而不必引入所有内容。如果我需要一些与客户相关的东西,我只需使用客户数据模块就可以了。

致以敬意,

Stefaan

票数 9
EN

Stack Overflow用户

发布于 2010-11-24 00:32:40

这是可以的,特别是如果您要创建多个相同表单的实例,每个实例都使用相关数据模块的不同实例。

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

代码语言:javascript
复制
  if FDataModule = nil then
  begin
    FDataModule := TMyDataModule.Create(Self);
    FDataModule.Name := '';  // That will avoid pointing to the same datamodule
  end;
票数 7
EN

Stack Overflow用户

发布于 2010-11-24 01:48:58

在镜面之外。我总是使用表单而不是DataModules。我知道这不是共同点。

我总是使用表单而不是DataModules。我叫他们DataMovules。

对于每组逻辑相关的表,我都使用一个这样的DataMovule。

我使用Forms而不是DataModules,因为DataModules和Forms都是组件容器,都可以有效地用作与数据相关的组件的容器。

开发过程中:

  • 我的应用程序更容易开发。表单为您提供了查看数据组件的机会,使这些组件的开发变得容易。
  • 我的应用程序更易于调试,因为您可以立即放置一些查看器组件,以便可以实际看到数据。我通常创建一个选项卡架,每个表有一个页面,每个页面上有一个数据网格,用于浏览表上的数据。
  • 我的应用程序更容易测试,因为您最终可能会操作数据,例如尝试使用极值进行压力测试。

开发完成后:

我确实把

  • 变成了看不见的形式。实际上,让它成为一个DataModule,我享受到了与数据模块完全相同的容器特性。

  • ,但有奖金。表单仍然在那里,所以我可能最终可以将它变为可见,以便确定问题。我使用“关于”框来做这件事。

不,我没有体验到任何明显的应用程序大小或性能方面的损失。

我并不想打破MVC范式。相反,我试着坚持它。我不会将构成我的视图的表单和构成我的控制器的DataMovules混为一谈。我不认为它们是我观点的一部分。它们永远不会用作我的应用程序的用户界面。DataMovules恰好是表单。它们只是一些方便的工程产品。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4256853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档