Хранение интерфейсов отдельно - PullRequest
0 голосов
/ 10 июля 2011

В моем приложении C # у меня есть несколько библиотек. Например:

  • основное приложение EXE
    • Вспомогательная DLL, A
    • Вспомогательная DLL, B
    • вспомогательная DLL, C
    • DLL доступа к данным, D

Моя библиотека доступа к данным D имеет интерфейс, который она предоставляет. Вспомогательная DLL B предоставляет другой интерфейс, который имеет в основном те же свойства, но это не тот же интерфейс (в отношении пространства имен и немного относительно того, как осуществляется доступ к этим свойствам). Кроме того, Helper DLL A использует то, что выставляют B и D. Это приводит к путанице с моей стороны, так как мне нужно соединить B & D в A, но я пытаюсь выполнить преобразование между этими интерфейсами, и что-то не так в этом.

Я не понимаю, что мне делать:

  1. Используйте интерфейс доступа к данным из D по всему приложению или ...
  2. Пусть каждая DLL имеет отдельные интерфейсы и выполняет преобразование между ними при переходе из одной DLL в другую.

Есть ли предпочтительное решение? Если так, то почему?

Ответы [ 3 ]

1 голос
/ 10 июля 2011

Если вам нужны все эти интерфейсы, трудно сказать мне, просто прочитав ваш пост, я лично рекомендую поместить их все в DataAccess, а также в утилиты преобразования. Таким образом, вы будете иметь все в одном месте, и любой помощник, которого вы напишите в будущем, должен будет ссылаться только на это.

0 голосов
/ 10 июля 2011

Я бы добавил еще одну DLL с интерфейсами, которые вы хотите использовать в трех других DLL.Тогда любой объект, который реализует один из этих интерфейсов, сможет обрабатываться одинаково независимо от того, в какой DLL он был объявлен. Вы также можете расширить любой из этих интерфейсов в одной из DLLS, чтобы включить дополнительные свойства или методы, где это необходимо.

0 голосов
/ 10 июля 2011

В чем проблема? Разве вы не можете просто сделать так, чтобы класс в main реализовывал эти интерфейсы по мере необходимости?

Классы могут наследовать от более чем одного интерфейса, или вы можете определить различные прокси, которые наследуют от их соответствующего класса, которые вместо этого работают с некоторым общим объектом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...