我在《DDD 的模式、原则和实践》一书中读到,如果你想完全封装你的领域模型,你可以将其属性设为私有并使用Memento模式来阅读它们。还有一个示例,存储库获取域模型的快照,然后映射到数据库模型并将其更改保存到数据库。它还从 db 检索数据库模型,将其映射到快照,然后使用工厂模式从快照重构域模型并使用它。
- 当您可以将数据库模型映射到域模型而不使用工厂或快照时,我对这里完成了多少工作感到有点困惑。这不是更容易吗?
如果我们要照书看,将Domain模型快照从服务层返回到表示层,然后映射到一个View Model,是不是正确的方法呢?或者在表示层创建快照并将其传递给服务层,使用工厂模式在那里重构它,然后将域模型传递到存储库,在那里它将再次拍摄其快照以映射到数据库模型并保存到D b....
当您需要使用如此复杂的映射架构时,您能举一些例子吗?
当可以更简单地完成时,真的感觉就像您正在编写复杂的代码。
更新
如果更容易理解我的要求,我可以放置代码示例。;)