保持接口分离

时间:2011-07-10 06:08:16

标签: c# design-patterns

在我的C#应用​​程序中,我有几个库。 E.g:

  • 主app EXE
    • Helper DLL,A
    • Helper DLL,B
    • Helper DLL,C
    • 数据访问DLL,D

我的数据访问DLL D有一个它公开的接口。 Helper DLL B公开了另一个具有基本相同属性的接口,但它不是相同的接口(名称空间明确,稍微与访问这些属性的方式有关)。此外,Helper DLL A使用B和D公开的内容。这导致了我的困惑,因为我需要连接B&在A中的D,但我发现自己试图在这些界面之间进行转换,而且似乎没什么关系。

我对自己该做什么感到困惑:

  1. 在整个应用程序中使用D的数据访问界面或......
  2. 让每个DLL都有单独的接口,并在它们从一个DLL交叉到另一个DLL时进行转换。
  3. 有首选解决方案吗?如果是这样,为什么?

3 个答案:

答案 0 :(得分:1)

如果你需要所有的接口,我很难通过阅读你的帖子对我说,我个人会建议将它们全部放在DataAccess中,也包括转换实用程序。所以你将把所有人都放在一个地方,将来你要写的任何助手都只需要参考。

答案 1 :(得分:0)

有什么问题?难道你不能在主要实现这些接口的类中创建一个类吗?

类可以从多个接口继承,或者您可以定义从各自的类继承的各种代理,这些代理代替对某些公共对象进行操作。

答案 2 :(得分:0)

我会添加另一个DLL,其中包含您要在其他三个DLL中使用的接口。然后,无论声明它在哪个DLL中,任何实现这些接口之一的对象都能够被处理相同。 您还可以在其中一个DLLS中扩展任何这些接口,以在必要时包含额外的属性或方法。