В текущем (C #) проекте у нас есть сторонняя сборка, которая содержит объект подключения без интерфейса. Используя IoC и т. Д., Мы можем внедрить этот конкретный экземпляр в наш код, но это оказывается кошмаром для модульного тестирования и т. Д. Мы используем MoQ в качестве фреймворка для фиксации, поэтому в идеале можно было бы использовать интерфейс для работы. и мы не хотим идти по пути использования чего-то вроде Moles , потому что мы хотели бы минимизировать количество технологий.
Если мы создадим интерфейс, имитирующий желаемую функциональность стороннего объекта подключения, а затем создадим реализатор этого интерфейса, содержащий экземпляр стороннего объекта, то это позволит нашему коду работать с интерфейсом, а также с нашим IoC и юнит-тесты будут счастливы. Однако в ходе обсуждения мы ходили по кругу, выясняя, какой это шаблон дизайна на самом деле!
Итак, вопрос: « Ситуация, описанная выше и проиллюстрированная в приведенном ниже коде, a: »
namespace ExampleCode
{
public interface IConnector
{
void Open();
}
public class ConnectorWrapper : IConnector
{
ThirdPartyConnector _instance;
public ConnectorWrapper(ThirdPartyConnector instance)
{
_instance = instance;
}
void Open()
{
_instance.Open();
}
}
}