我觉得我问的是一个非常基本的问题,我想我应该能够在互联网上找到一个好的答案。但我已经疲惫不堪了,只找到了几块干骨头。最重要的是,我现在害怕这个问题可能过于主观:)
不管怎么说,问题来了。在面向对象的程序中,从关系数据库访问、处理和操作数据的良好实践是什么?到目前为止,在我的编程中,我一直在以一种程序性的方式处理数据库数据。我目前正在积极改进我的OOP习惯,我不知道如何处理这个问题。
下面是我正在研究的方案之一。我有一张桌子上有很多制造业的工作条目。我正在编写的应用程序(改进)对每一项工作都进行了大量的处理。例如,我遍历表中的每一行并执行以下操作:
将到期日发布给Google calendar
F 215
你说对了。每一项工作都要进行大量的处理。目前,我有大多数优秀的程序员所称的一堆非常棒的意大利面条代码。也许没那么糟,但差不多了。我用一个for每个循环遍历表中的每一行,然后在每一行上依次执行每个操作。我不喜欢目前的设计方式,但我不知道如何做得更好。
我希望我能有一个名为"Jobs“的整洁对象,它将实现一个作业的所有属性,并为执行每个操作提供一个方法。然后,我甚至可以做一个定制的收集来处理我的工作,整个世界将更加光明。整个解决方案将更具可读性、更易于维护、更容易添加要在每个任务上执行的操作(这种情况经常发生)等等。
但我的问题是,我不知道如何在高级对象和数据库之间建立连接。我是否应该使用某种对象-关系映射(我阅读了关于此的各种不同意见)?我是否只是循环遍历所有行并将它们转换为集合中积累的对象?还是以程序的方式继续进行这样的项目是最好的选择?我希望你能给我答案和意见。
我以抽象的方式对有关这一问题的资料感兴趣。换句话说,我不知道如何处理这样的情况。不只是我给出的例子。当然,细节也很好。我大部分的编程都是用Visual和C#用VS 2010编写的。
发布于 2012-05-15 05:38:19
看看仓库的模式。这是一种以有意义的方式将数据访问与业务处理分离开来的好方法。应用此模式,我有几个项目:
存储stuff
。
有关每种项目类型的良好描述,请参见How to use Entity Framework context with dependency injection?
发布于 2012-05-15 05:38:58
,但我的问题是,我不知道如何在漂亮的对象和数据库之间建立连接。我是否应该使用某种对象-关系映射(我阅读了关于此的各种不同意见)?
是。
至于加工。使用访问者模式,让所有希望处理数据的不同代码将自己注册为访问者。您还可以使用控制反转容器来管理它(IHandlerOf<Job>
或IHandlerOf<TravelerDocument>
)。
它为您提供了更松耦合的数据处理方法。
https://stackoverflow.com/questions/10594654
复制相似问题