clean-architecture - 清洁架构:内存实体的哪一层?
问题描述
考虑到鲍勃叔叔的清洁架构的不同层,我有一个问题:如果您将数据存储在数据库中,这显然是一个细节,因此数据库进入了外层(框架和驱动程序)。然而,描述该数据库中数据的实体是我的应用程序的核心信息,因此它们位于最内层(实体)。
现在假设我必须在应用程序启动时获取所有数据。然后有一些计算在开始时只需要一次,但这有点耗时。所以不可能一直从数据库中获取数据。因此,该应用程序使用该数据的内存表示。
我的问题是你会把这个内存表示放在哪里?一方面,它只不过是像数据库这样的细节,因此位于最外层。另一方面,它准确地代表了具有更多信息的实体 - 但最终它只是一个普通旧对象的列表。这会推荐核心层,不是吗?
就我个人而言,我倾向于使用第一个选项并像处理另一个数据源一样处理它 - 作为一个细节。
亲切的问候,蒂耶里
解决方案
它仍然是一个细节,应该保留在外圈。如果您考虑存储库模式,那么实现是在内存中还是访问 SQL 数据库都没有关系。它仍然是您希望与业务逻辑保持分离的细节,以便您可以随时轻松更改它。
推荐阅读
- r - 使用ggplot 2在同一图上为是/否变量创建两个单独的箱线图
- ruby - Puppet - 如何将参数传递给命令行
- audio - Premiere Pro 中的音频不同步,我的音频具有恒定的帧速率。有人知道如何解决吗?
- azure - 在 Azure VM 规模集上部署 Kubernetes 应用程序
- python - 如何在亚马逊 lambda 中从亚马逊连接传递属性?
- sql - 在下面的内部联接的 oracle 查询中得到错误
- c# - 401 - 使用 OData 和 .Net 连接到 D365 Finance and Operations
- java - Android Studio 中的突然编译错误;错误:找不到符号类 ComputableLiveData
- javascript - 如何从浏览器控制台检索记录的数据到 http 服务器
- wordpress - WordPress Post Meta 而不是自定义帖子类型中的标题