繁体   English   中英

谁应该将 object 保存到持久性 memory

[英]Who should save object to persistent memory

我目前正在学习UML。 我到处找,但找不到答案。 object 的创建者应该始终通过数据访问 object 将其保存在持久性 memory 中,还是由专家通过数据访问 object 将其自身保存在持久性 memory 中更好?

主要选择

UML 在这方面是不可知论的。 这取决于您的架构选择:

  • 一种流行的方法是Repository对象,它充当一种隐藏数据库的集合。 您将插入、检索、隐藏或更新存储库中的元素,存储库负责管理数据库。
  • 另一种流行的方法是活动记录 每个持久化 object 负责在数据库中插入、更新或删除自己。
  • 还有其他几种方法。

如何选择?

您描述的场景对应于第二个场景。 对于域逻辑很少的面向 CRUD 的应用程序来说,这是一种诱人的方法。 但它有几个缺点限制了它们的适用性:

  • 它没有强制执行适当的关注点分离(另请参阅 Songle 责任原则)。
  • 它将您的系统与数据库紧密耦合,并且在以后的阶段可能很难更改底层数据库。

此外,您还需要注意事务逻辑(即要么完成一组相关更改,要么全部取消),或者避免 memory 中的多个对象对应于数据库中的同一个 object。 虽然并非不可能,但对于活动记录来说,这更加困难。

如何加深对这些备选方案的理解?

关于这个主题最全面的书是 Fowler 的“企业应用程序架构模式”。 另一本值得投资以深入了解存储库背后的书籍是 Evans 的DDD 圣经 恕我直言,通过阅读这两本书,您将节省数年的工作实验和发现时间。然后您可以使用节省的时间来加深您在其他创新领域的技能)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM