保持接口分离



在我的c#应用程序我有几个库。例句:

  • 主应用程序EXE
    • Helper DLL, A
    • 帮助DLL, B
  • 帮助DLL, C数据访问DLL, D

我的数据访问DLL, D,有一个它公开的接口。Helper DLL B公开了另一个具有基本相同属性的接口,但它不是相同的接口(名称空间方面,并且在如何访问这些属性方面略有不同)。此外,Helper DLL A使用B和D公开的内容。这导致了我的困惑,因为我需要连接B &D in A,但我发现自己试图在这些接口之间转换,有些东西似乎不太对。

我不知道该怎么办:

  1. 在整个应用程序中使用D的数据访问接口或…
  2. 让每个DLL都有单独的接口,并在它们从一个DLL到另一个DLL之间进行转换。

是否有更好的解决方案?如果是,为什么?

如果你需要所有这些接口,仅仅通过阅读你的帖子很难对我说,我个人建议把它们都放在DataAccess和转换实用程序中。这样你就把所有的东西都放在了一个地方,以后你写的任何Helper都只需要引用它。

有什么问题吗?你不能在main中创建一个类来实现那些必要的接口吗?

类可以从多个接口继承,或者您可以定义各种代理,这些代理从它们各自的类继承,而不是在一些公共对象上操作。

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

最新更新