首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类数据职责

类数据职责
EN

Stack Overflow用户
提问于 2008-10-03 15:08:26
回答 8查看 345关注 0票数 3

我有一个“采购订单”的课程。它包含有关单个采购订单的信息。我有一个用于数据库方法的DAO类。

加载和更新采购订单的方法的责任应该在哪里?

PurchaseOrder类是否应具有直接使用DAO类的“.update”、“insert”、“delete”和“.load”方法,或者PurchaseOrder类是否应忽略DAO方法并具有管理这些交互的POController类?

用户一次只能在一个PurchaseOrder上工作。

谢谢!

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2008-10-03 15:13:04

采购订单应该忽略其持久性的细节。这就是拥有某种类型的数据访问层的意义所在,它处理对象的管理,并且对象本身可以专注于仅仅是一个购买订单。

这也使系统更易于测试,因为您可以创建模拟采购订单并测试系统如何处理它们的逻辑,而不会陷入持久性问题。

票数 4
EN

Stack Overflow用户

发布于 2008-10-03 15:42:08

为了简单起见,我将PurchaseOrder作为接口,并将所有DAO代码放在实现中,然后使用工厂。

票数 1
EN

Stack Overflow用户

发布于 2008-10-03 15:17:05

这取决于您认为您的应用程序将存在多长时间。我公司的金属切割应用程序自1985年以来一直在不断开发,并通过计算机体系结构的多次变化进行了移植。在我们的例子中,我们几乎总是把东西推到接口(或者使用你的术语的控制器类)后面,因为我们不知道5年、10年、15年后的情况。

通过使用控制器类,我们可以更改底层API,而不会篡改上面的业务逻辑级别和UI调整。这些级别代表多年的工作,因此保留他们的行为是很重要的。

记住,在你的项目生命周期的大部分时间里,你的项目都处于维护阶段。您现在所做的任何事情都将在以后更容易地更改设计,从而节省大量的时间。

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

https://stackoverflow.com/questions/167330

复制
相关文章

相似问题

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