我有下面的案子。用户可以将多种对象类型(交易、发票等)导出到外部会计系统。导出算法有步骤:
对于所有对象类型,算法是相同的,但是有一些重要的区别必须处理:
我考虑了几个解决方案:
问题:
创建每个对象类型的单独导出算法是否是代码复制?
也许所有这些都应该作为单独的用例来处理?
如果这是一个重复,那么我应该考虑哪些技术来避免它呢?
对我的第一个实现的描述:
在第一种方法中,我定义了一个可导出的抽象,但我对此并不满意。每个对象都有完全不同的有效载荷。一个可导出的接口只定义了一个方法getId,它被用来注册被导出的对象(由于它不会再次导出)。为此目的,抽象是很好的,但是问题转移到exportService,它必须检查具体实例以选择DTO和端点。所以exportService破裂了。
发布于 2015-06-24 13:22:01
上面所描述的没有一个是特定于领域的逻辑(事实上你甚至在你的问题中都没有提到问题领域),所以我不认为它真的属于领域驱动的设计。因为这不是特定于领域的逻辑,所以我不会太担心代码复制,特别是考虑到解决方案似乎并不明显。
保持简单,只需分别写出每个用例。如果您发现有一些很容易重构的通用代码,那么在所有事情顺利运行之后,就可以这样做了。在显然有必要之前,不要过度考虑或添加模式。
https://stackoverflow.com/questions/31022820
复制相似问题