我觉得我在问一个非常基本的问题,我想我应该能够在互联网上的某个地方找到一个好的答案。但是我已经筋疲力尽了,只找到了几根枯骨。最重要的是,我现在害怕这个问题可能太主观了:)
不管怎样,问题来了。在面向对象程序中访问、处理和操作来自关系数据库的数据的良好实践是什么?到目前为止,在我的编程中,我一直在以一种程序化的方式处理数据库数据。我目前正在积极尝试改善我的 OOP 习惯,但我不确定如何处理这个问题。
这是我正在使用的场景之一。我有一张桌子,里面有许多制造工作条目。我正在编写(改进)的应用程序对每个作业执行大量处理。例如,我遍历表中的每一行并执行以下操作:
- 将截止日期发布到 Google 日历
- 在给定目录中创建作业唯一的文件夹
- 为作业创建工作订单
- 为工作创建一份合同简介
- 管理旅行证件
- 通过电子邮件将信息发送给几个人
- 等等,名单还在继续
你明白了。每项工作都会进行大量处理。目前,我拥有大多数优秀程序员所说的一堆意大利面条式代码。也许它不是那么糟糕,但几乎。我使用 for each 循环遍历表中的每一行,并按顺序对每一行执行每个操作。我不喜欢目前的设计方式,但我不知道如何做得更好。
我希望我可以拥有一个名为“Jobs”的简洁对象,它可以实现作业的所有属性并提供执行每个操作的方法。然后我什至可以制作一个定制系列来处理我的工作,整个世界都会变得更加光明。整个解决方案将更具可读性,更易于维护,更容易添加对每个作业执行的操作(经常发生)等。
但我的问题是我不知道如何在花哨的对象和数据库之间建立连接。我应该使用某种对象关系映射(我阅读了各种关于此的混合意见)吗?我是否只是遍历所有行并将它们转换为在集合中累积的对象?还是以程序方式继续进行此类项目的最佳选择?我会喜欢你的回答和意见。
我以抽象的方式对有关此主题的信息感兴趣。换句话说,我想知道如何处理这种情况。不仅仅针对我给出的示例。但当然,细节也很棒。我使用 VS 2010 使用 Visual Basic 和 C# 进行大部分编程。