1

在考虑避免代码复制时,我每次开始开发新系统时都会遇到一个问题:

假设我们有一个系统,我有一个客户,必须在存储库中对其进行 CRUD 并将其显示为 Web 服务中的资源。

考虑与客户相关的类,我们会(好吧,我永远不会真正使用这些名称):

  • CustomerEntity,表示用于做系统逻辑的实体;
  • CustomerRepositoryEntity,表示将要存储的表行;
  • CustomerXMLEntity,代表 XML 节点“客户”;

似乎我将拥有三个实体,并且所有客户的属性都将在每个类中。我想知道是否没有办法或模式将这三个类合并到同一个实体中,简称为“客户”。

这样,每次我需要创建“客户”的新表示时(例如,如果我想将其表示为 Json 元素),我不需要为其创建新类。我知道这是一个非常特殊的问题,但我只是想知道它是否比我现在的做法更容易(和更好看)。

4

1 回答 1

1

假设您在不同的应用程序中使用相同的语言......

构建一个代理类和一个后端类。

后端类在您的数据附近运行,并且仅用于为您的代理提供数据。

您的代理在任何客户端上运行,并将后端端点的位置作为初始化参数。当在您的代理对象上调用 get/set 时,它会处理您的验证和业务规则,然后将请求返回给您的后端类,该类处理持久化数据的实现细节。

您将有两层抽象:一层用于数据持久性,一层用于业务规则。

>>>>>  Nathan
于 2009-06-29T19:42:21.730 回答