同一实体的多个表示

时间:2009-06-29 18:27:57

标签: c# .net code-reuse

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

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

考虑与客户相关的课程,我们会有(好吧,我永远不会将这些名称用于实际):

  • CustomerEntity,表示用于执行系统逻辑的实体;
  • CustomerRepositoryEntity,表示将存储它的表行;
  • CustomerXMLEntity,代表XML节点'customer';

似乎我将拥有三个实体,所有客户的属性都将出现在每个类中。我想知道是否有一种方法或模式来整合同一实体中的这三个类,简称为“客户”。

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

1 个答案:

答案 0 :(得分:1)

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

构建代理类和后端类。

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

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

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

>>>>>  Nathan