gpt4 book ai didi

orm - ORM 对 OO 设计是否适得其反?

转载 作者:行者123 更新时间:2023-12-03 21:24:41 25 4
gpt4 key购买 nike

在 OOD 中,对象的设计被认为以其身份和行为为特征。

过去使用过 ORM,在我看来,主要目的是围绕存储/检索数据的能力。也就是说,ORM 对象不是按行为设计的,而是按数据(即数据库表)设计的。案例和要点:许多 ORM 工具都带有点到数据库表和单击对象生成器。

如果对象不再以行为为特征,在我看来,这将混淆对象的身份和责任。随后,如果对象不是由职责定义的,这可能会导致类紧密耦合和整体设计不佳。

此外,我认为在应用程序设置中,您将面临可扩展性问题。

所以,我的问题是,您认为 ORM 对 OO 设计是否适得其反?也许潜在的问题是它们是否对应用程序开发适得其反。

最佳答案

良好的数据库设计要求与良好的面向对象设计要求之间存在众所周知且经常被忽视的阻抗失配。大多数开发人员(根据我的经验)要么不了解这种阻抗不匹配,要么不在乎。因为从数据库开始并从中生成对象更为常见(而不是相反),所以是的,您最终会得到作为持久层很好的对象,但从 OO 的角度来看不是最佳的。 (相反,从对象模型生成数据库,让我想刺瞎我的眼睛。)

为什么从面向对象的角度来看它们是次优的?因为 ORM 产生的对象不是业务对象,即使有部分类等等。业务对象模型行为。 ORM 对象模型持久性。我不会花十段时间来争论这种区别。有点事 Rocky Lhotka在他关于 Business Objects 的书籍和他的 CSLA framework 中已经涵盖了相当多的内容。 .无论您是否喜欢或使用 CSLA,我认为他的论点都是可靠的。

关于orm - ORM 对 OO 设计是否适得其反?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2625098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com