Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >数据库数据处理的良好OOP设计原则

数据库数据处理的良好OOP设计原则
EN

Stack Overflow用户
提问于 2012-05-14 21:32:21
回答 2查看 1.3K关注 0票数 5

我觉得我问的是一个非常基本的问题,我想我应该能够在互联网上找到一个好的答案。但我已经疲惫不堪了,只找到了几块干骨头。最重要的是,我现在害怕这个问题可能过于主观:)

不管怎么说,问题来了。在面向对象的程序中,从关系数据库访问、处理和操作数据的良好实践是什么?到目前为止,在我的编程中,我一直在以一种程序性的方式处理数据库数据。我目前正在积极改进我的OOP习惯,我不知道如何处理这个问题。

下面是我正在研究的方案之一。我有一张桌子上有很多制造业的工作条目。我正在编写的应用程序(改进)对每一项工作都进行了大量的处理。例如,我遍历表中的每一行并执行以下操作:

将到期日发布给Google calendar

  • create --给定directory

  • create中的一个文件夹--工作订单

  • --为工作创建一份合同摘要,

  • 管理旅行者documents

  • email信息给几个人

  • 等等,列表是

F 215

你说对了。每一项工作都要进行大量的处理。目前,我有大多数优秀的程序员所称的一堆非常棒的意大利面条代码。也许没那么糟,但差不多了。我用一个for每个循环遍历表中的每一行,然后在每一行上依次执行每个操作。我不喜欢目前的设计方式,但我不知道如何做得更好。

我希望我能有一个名为"Jobs“的整洁对象,它将实现一个作业的所有属性,并为执行每个操作提供一个方法。然后,我甚至可以做一个定制的收集来处理我的工作,整个世界将更加光明。整个解决方案将更具可读性、更易于维护、更容易添加要在每个任务上执行的操作(这种情况经常发生)等等。

但我的问题是,我不知道如何在高级对象和数据库之间建立连接。我是否应该使用某种对象-关系映射(我阅读了关于此的各种不同意见)?我是否只是循环遍历所有行并将它们转换为集合中积累的对象?还是以程序的方式继续进行这样的项目是最好的选择?我希望你能给我答案和意见。

我以抽象的方式对有关这一问题的资料感兴趣。换句话说,我不知道如何处理这样的情况。不只是我给出的例子。当然,细节也很好。我大部分的编程都是用Visual和C#用VS 2010编写的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-14 21:38:19

看看仓库的模式。这是一种以有意义的方式将数据访问与业务处理分离开来的好方法。应用此模式,我有几个项目:

存储stuff

  • DataAccess的
  • 实体-- ORM DbContext和ADO.NET
  • --封装查询,将强类型函数呈现给应用程序
  • TheRest的其他项目/层:业务、GUI等

有关每种项目类型的良好描述,请参见How to use Entity Framework context with dependency injection?

票数 4
EN

Stack Overflow用户

发布于 2012-05-14 21:38:58

,但我的问题是,我不知道如何在漂亮的对象和数据库之间建立连接。我是否应该使用某种对象-关系映射(我阅读了关于此的各种不同意见)?

是。

至于加工。使用访问者模式,让所有希望处理数据的不同代码将自己注册为访问者。您还可以使用控制反转容器来管理它(IHandlerOf<Job>IHandlerOf<TravelerDocument>)。

它为您提供了更松耦合的数据处理方法。

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

https://stackoverflow.com/questions/10594654

复制
相关文章
Maven通过命令创建web项目
mvn archetype:create -DgroupId=com.learn -DartifactId=LearnNew -DarchetypeArtifactId=maven-archetype-webapp
程序新视界
2022/11/30
3180
Maven通过命令创建web项目
在idea中创建web项目_idea部署web项目
这个时候给项目命名,我在这里命名为java_web,下面那个可以更改项目存放的路径,我这里放到自定的路径,点击Finish。
全栈程序员站长
2022/08/02
1.6K0
在idea中创建web项目_idea部署web项目
IDEA 创建Maven Web项目时很慢
最近创建web项目,很慢,还会创建失败,忍不住了,苦思冥想排查原因, 最后,终于找到了,是因为maven 没有选择jdk的原因! 气死我了。
无敌小菜鸟
2020/05/09
8700
对路径“xxxxx”的访问被拒绝。
对路径“D:\\Weixin\\WechatWeb\\wapMxApi\\JsonFile\\WaterPrice.json”的访问被拒绝。
全栈程序员站长
2022/09/20
2.7K0
部署docsify项目时出现无法访问README.md
今天在服务器上部署用docsify编写的文档项目,结果发现首页竟然无法显示,提示404。
用户8851537
2021/08/03
1.9K1
拒绝访问磁盘拒绝访问的恢复办法
当磁盘插入电脑中时,如果示“拒绝访问”的信息时,我们首先需要对磁盘进行目录修复操作。插入待修复的磁盘,打开“我的电脑”,找到磁盘所在的盘符。
用户10127983
2022/10/22
3K0
【Tomcat】Linux上Tomcat发布-JavaWeb项目-访问时不通过项目名
一开始自己不知道怎么直接通过域名访问到自己部署的Web项目,发布在Tomcat上的。 因为自己以前写都是后面加了项目名, 然后去百度谷歌,找到了下面的正确方法
谙忆
2021/01/21
1.2K0
【Tomcat】Linux上Tomcat发布-JavaWeb项目-访问时不通过项目名
从拒绝到被拒绝
2021,新的一轮工作季的开始,你投了太多的简历,太多的邮件,太多的尝试,而到头来收获的却是从拒绝到拒绝。
HoneyMoose
2021/05/13
1.1K0
从拒绝到被拒绝
为什么使用了HTTP代理还是被拒绝访问?
既然某乎为我推荐了这个问题,那今天就来简单说说,使用了HTTP代理后,还是拒绝访问,无非以下原因:
阿秋数据采集
2023/05/19
2.1K0
怎么创建web项目_vs怎么创建项目
WTM — Rapid development framework based on dotnet core
全栈程序员站长
2022/11/03
4.1K0
scrapy拒绝访问
运行成功
红目香薰
2022/11/29
2.8K0
scrapy拒绝访问
maven创建web项目
链接:https://my.oschina.net/960823/blog/870511
斯文的程序
2019/11/07
1K0
maven创建web项目
MySql拒绝访问
昨天用phpMyAdmin修改账号密码后,出现了下图的情况 原来,用phpmyadmin链接mysql数据库,并修改mysql数据库的密码。但修改的方式是直接在表里面进行修改保存。没有用sql语句。
smy
2018/04/03
5.8K0
MySql拒绝访问
github部署项目,在线访问
5,关联github仓库,获取到github仓库地址后,将本地仓库与github仓库关联
用户3055976
2019/12/30
9990
github部署项目,在线访问
flutter项目打包web访问
参考文章:https://dart.cn/null-safety/migration-guide
徐建国
2021/11/30
2.4K0
flutter项目打包web访问
Docker部署web项目
  docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
程序员云帆哥
2022/05/12
1.9K0
Docker部署web项目
服务器要删除文件访问被拒绝,删除文件提示:文件夹访问被拒绝 需要来自administrator权限执行操作…
有时候我们在删除一些系统重要文件,或者被保护的文件的时候,会出现对话框,提示我们您需要来自administrator权限才能对此文件夹进行更改,这是什么原因导致的?今天小编就为大家分析下解决办法。
全栈程序员站长
2022/11/17
6K0
服务器要删除文件访问被拒绝,删除文件提示:文件夹访问被拒绝 需要来自administrator权限执行操作…
电脑拒绝访问_添加本地端口拒绝访问win10
1:linux 服务器默认是不允许 root账号进行远程使用winscp,所以我们需要创建一个新的非root用户进行登录
全栈程序员站长
2022/09/30
2.5K0
电脑拒绝访问_添加本地端口拒绝访问win10
通过Jenkins部署java项目
Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven。
端碗吹水
2020/09/23
1.3K0
通过Jenkins部署java项目
通过域名访问Linux云服务器上的java web项目
当有几个项目需要放在云服务器上,直接在nginx配置文件中创建几个虚拟主机,然后需要解析几个二级域名。这种方法比较容易实现些,把所有的java web项目放到一个Tomcat下实现访问。
兮动人
2021/06/11
10.8K0

相似问题

创建虚拟目录时拒绝访问。

15

在通过jenkins localhost tomcat部署时被拒绝访问

12

Maven:无法部署项目,访问被拒绝

33

生成项目时访问被拒绝

31

使用XML文档部署Web项目时,构建服务器上的“访问被拒绝”

39
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文