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

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

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

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

看来我将拥有三个实体,并且所有客户的属性都将位于每个类中。我想知道是否有一种方法或模式可以将这三个类合并到同一个实体中,简称为“客户”。

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

有帮助吗?

解决方案

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

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

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

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

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

>>>>>  Nathan
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top