В настоящее время я пишу библиотеку-обертку на C #, которая оборачивает COM-объект, который имеет очень маленький и болезненный для использования API, и у меня есть небольшая проблема с беспорядком.
Это первый проект, в котором я использовал TDD и макет, так что извините, если это не является большой проблемой. Я дал копию своей библиотеки одному из моих коллег по работе, и первое, что он заметил, было большое количество интерфейсов, которые были в API.
Я объяснил ему, что, поскольку я выполнял модульное тестирование и макетирование, мне нужны интерфейсы, чтобы прекратить тестирование, касающееся COM-объекта, он вроде как понял, но это заставило меня задуматься, может быть, мой API немного загроможден, что затрудняет понимание .
У меня вопрос: если я пишу библиотеку-обертку, где каждый объект где-то касается COM API, каков наилучший способ обезопасить мой API и при этом иметь возможность тестировать код.
Должен ли я использовать абстрактные классы вместо интерфейсов для большинства вещей? или я должен просто спрятать интерфейсы, которые только по причинам насмешки, где-то в пространстве имен?