【发布时间】:2010-03-05 16:13:13
【问题描述】:
在我的系统中,我有两个不同的项目,一个定义它的接口,另一个定义它的域对象。到目前为止,我设法让接口定义独立于域对象,但我现在觉得需要将某些域对象作为接口中定义的方法的参数或作为此类的返回值。
我应该拒绝并尝试保持接口独立于域对象,还是这是一个毫无根据的担忧?
编辑 - 在发布问题后,我考虑为每个域对象定义一个接口,这样它们就可以保持独立 - 不知道这是否是矫枉过正,或者是否需要付出代价,以便它们保持独立。
编辑#2 - 我被要求举一个例子,所以我会尽量保持简单。我有一个处理图像转换的过程,我的一个域对象是一个保存诸如分辨率、页面列表、哈希等信息的类。让它被称为 DocumentInfo。我有一个类使用 DocumentInfo 来执行诸如 GeneratePdfFromTiff 之类的操作;我先将GeneratePdfFromTiff定义为IImageHandler的接口方法,然后由ImageHandler实现。
问题是 - GeneratePdfFromTiff 的参数之一是 DocumentInfo。在这里,我在接口级别定义的方法必须知道在域级别定义的 DocumentInfo。这就是我关心的那种依赖。
【问题讨论】:
-
外部应用程序现在如何访问您的域对象,您的接口提供了什么样的抽象?这绝对是一个有趣的问题,但我认为它不承认目前措辞的一般性答案。
-
@Jeff - 它实际上是一个由子系统组成的系统,由于我可以访问所有源,因此很难将它们分开。我相信可能有一个通用的答案,即为每个可由接口使用的域对象创建一个接口,我将不得不考虑并尝试看看。
-
ávio - 更新绝对有帮助!我在下面给出了我的镜头。