3

我正在构建一个将数据公开为 XML 的 REST API。我的领域层中有一大堆领域类,它们旨在供 API 背后的服务层和我们将提供给客户的客户端 API 使用。(客户确实可以选择直接与 REST API 交互,但客户端 API 可以简化事情)。我想保持我的域类没有任何数据持久性逻辑,但我正在努力弄清楚域类是否可以实现 IXmlSerializable 以帮助简化序列化通过暴露和检索的数据的过程API。我开始认为我会让域类没有任何序列化逻辑,而是用序列化行为来装饰它们,例如 将域对象包装在处理序列化的对象中。我是否让事情变得比他们需要的更复杂?关于我应该如何处理这个问题的任何想法?谢谢!

4

1 回答 1

5

领域类应该只关注业务逻辑,而不是持久性或序列化。

您应该创建一组数据传输对象 (DTO) 类,每个类对应于一个域类。这些类将仅包含您决定公开的域类中的属性。这允许域类具有不通过持久层或序列化层公开的属性。

只有 DTO 对象会被序列化和反序列化。

然后,您可能会发现创建静态“翻译”方法在域和 DTO 对象之间进行翻译很方便。

于 2009-12-04T04:19:28.393 回答