我见过的所有 DCI 的例子似乎都是基于对象作为信息的最终持有者,并且在方法内部定义了事务边界。
我想看一个持久性应用程序的示例,其中有某种持久性层,即可以有底层持久性存储的重复对象副本,并且对对象的更改是对稍后将要更改的副本的更改被坚持。DCI 是否适用于该模型?
我见过的所有 DCI 的例子似乎都是基于对象作为信息的最终持有者,并且在方法内部定义了事务边界。
我想看一个持久性应用程序的示例,其中有某种持久性层,即可以有底层持久性存储的重复对象副本,并且对对象的更改是对稍后将要更改的副本的更改被坚持。DCI 是否适用于该模型?
DCI 是一种范式,就像您可以使用任何其他具有持久性的范式构建应用程序一样(排除纯 FP,因为持久性是一种副作用),您也可以使用 DCI。DCI 示例中没有提到它,因为它与范式无关,与理解范式无关。(也就是说你不是第一个提出这个问题的人,也不会是最后一个我敢肯定)。
持久化数据的关注点通常与 DCI 正交。DCI 尝试将设计划分为
第一个是领域模型,第二个是系统的功能。“系统是什么”是保存在内存、平面文件还是数据库中当然很重要,但这是一个单独的问题,通常使用受限的 OO来实现
DCI 并不真正关心持久性。
在http://blog.maxant.co.uk/pebble/files/dci_java_example_for_object_composition_google_group_201010052226.zip我发布了一个 Java 示例,其中包含用于持久实体的 JPA (ORM)。
这是即将在 www.maxant.co.uk/whitepapers.jsp 上发布的白皮书的一部分
该论文中还有一个显示 DCI 被集成到应用服务器中的示例。希望有帮助!