Композиция / Делегирование в C # - PullRequest
0 голосов
/ 28 сентября 2011

Хорошо, мне нужно использовать какую-нибудь стороннюю библиотеку, и полученный код сложно для модульного тестирования, потому что классы не реализуют интерфейсы (т.е. я не могу изолировать свой код от его зависимостей, которые в очередь опирается на базы данных и кто знает что еще).

Мое решение - обернуть сторонние классы в мои собственные классы, которые имеют такой же интерфейс и содержат экземпляр стороннего класса. Пока все достаточно просто.

Вопрос: есть ли способ автоматически извлечь эти интерфейсы из существующих (сторонних) классов? Похоже, я собираюсь написать много кода для котельной, если сделаю это вручную.

1 Ответ

0 голосов
/ 28 сентября 2011

Я не знаю инструмента, который делает это точно.Но я бы так и сделал.Возьмите Reflector и перепроектируйте сторонний компонент.Возьмите код и «разбейте его», чтобы просто подписи методов.Затем, с небольшим количеством настроек, у вас есть интерфейс.Не совсем "без шаблонов", но он действительно удаляет много работы.

...