加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Delphi中从哪里开始OOP主要关注数据库开发?

发布时间:2020-12-15 04:11:59 所属栏目:大数据 来源:网络整理
导读:我想从GUI设计中隔离数据库代码.在合理的时间里,我一直在阅读/搜索/浏览mgm / mvp / mvc / persistence / objects等主题. 我在设计可重用的对象层次结构/框架时遇到了困难. Delphi是RAD的一个很好的工具,但当你想以不同的方式解决问题时,文档似乎无效.我希望
我想从GUI设计中隔离数据库代码.在合理的时间里,我一直在阅读/搜索/浏览mgm / mvp / mvc / persistence / objects等主题.
我在设计可重用的对象层次结构/框架时遇到了困难. Delphi是RAD的一个很好的工具,但当你想以不同的方式解决问题时,文档似乎无效.我希望为数据访问开发一些持久性之王,并轻松地将数据连接到对象/对象列表中.并以多种方式集成数据显示(使用现有组件或不使用dbaware,创建多种格式的导出/导入例程).我应该从哪里开始?你知道任何带代码的教程吗?
例如,Delphi安装中包含的mastapp演示是RAD-way作为初创公司的一个很好的来源.我需要OOP中的等价物:)评论&教程

解决方法

嗯.很大的问题,这个东西不在手册中:(真的需要一本书来回答它.但是如果你要开始一个新的大项目,那么我的建议清单,用Delphi做了10年后,将如下开始:

通常

在开始版本1所需的功能之前,请先考虑一下.但是不要忽略版本2和3的花哨的可能性.

除简单的单独实用程序或基本数据输入屏幕外,不要使用数据感知控件.

推理:

>他们立即打破你的GUI< - >数据库分离.
>他们在用户友好性测试中让你失望一点.
>他们鼓励Spaghetti Code

不要使用任何标准或第三方控件,包括表格,框架或数据模块.首先构建自己的派生类库 – 即使您在开始时没有添加任何功能,也总是使用这些类.

推理:

>完全控制应用程序的行为.
>简化前向兼容性.
>授予您完全自由地在新组件树中的任何位置引入新属性/功能,而无需编辑所有对话框和表单或对象.

尽可能将一切创建为具有属性的对象,只有当它们不能被只读时才会隐藏复杂性和设置器.训练你的自己总是使用自己的属性 – 使用快速公共变量作弊通常会导致你以后重新创建它作为属性.

数据库设计 – 读一本书:)

GUI< - >数据库分离.

由于应用程序将不得不与数据交互,因此100%的分离我认为不可能.相反,您的基线对象可能至少定义:

>检索或加载数据的机制
>编辑该数据的机制
>保存数据的机制
>显示数据的机制.

我会称之为松散耦合.

对于每个数据表或密切相关的表组,创建一个单独的Datamodule,其中包含只读查询,可写查询等.保持SQL尽可能简单 – 我在2天内将我的最后一个应用程序从Oracle移到MYSQL – 150个带有相关对象的表并编辑帧:).最初也将它们全部链接到一个池连接也在它自己的Datamodule中.

听起来你已经意识到列表,特别是TObjectLists,是你的朋友.再次 – 为您需要的每种类型的对象派生自己的.我实际上隐藏了更简单对象中的真实列表.公开Items和Count属性是微不足道的.然后根据需要使用内部列表向基本项添加更多功能.从那里列表列表是一个简单的步骤,几乎自然地遵循它们所代表的数据库数据的结构.

通过实际存储应用程序的不同部分在数据库中使用/需要的列表类型,您可以使用此方法变得更加复杂.然后,您可以动态创建正确的列表,而无需应用程序实际知道其中的内容 – 开发阶段的列??表和对象本身应包含他们操作/加载/保存和显示自己的数据所需的所有功能:).这也可以扩展到列表执行的功能.我使用了一些基本列表类型来公开简单的计数和项目 – 在我的例子中,它们有大约50个后代.

以这种方式工作,您的项目可能会积累大量文件,但您可以依赖并信任Delphi – OO模型非常强大并且很少被捕获.

如果您遵循大部分内容,您的主应用程序最终将成为列表加载器,这就是它:)在我的最新版本中,主要功能仅占用大约100行代码,但它启动的内容非常复杂.

最后 – 所有这一切都是很多工作:(第一次做对不会发生让我们说实话,所以要准备好妥协你的漂亮的对象模型,让应用程序出门,但做出大的评论在哪里以及为什么你做了它以及如何在以后再次纠正它.

祝好运 :)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读