У меня есть компонент электронной почты, который я интегрирую в свое приложение, и ищу несколько советов о том, как создать вокруг него оболочку, чтобы при необходимости я мог заменить ее другим сторонним компонентом.
Мой подход сейчас таков:
- создать интерфейс, который будет мне нужен.
- создайте класс, который реализует интерфейс, используя мой сторонний компонент внутри этого класса.
любое использование этого компонента будет осуществляться через интерфейс, например:
IPop3 pop3 = new AcmeIncePop3Wrapper ();
pop3.connect ();
и внутри AcmeIncePop3Wrapper будет:
public void connect()
{
AcmeIncePop3 pop = new AcmeIncePop3();
pop.connect();
}
Это хороший подход?
Я мог бы, вероятно, добавить еще одну абстракцию с помощью ninject, чтобы я мог поменять местами реализации, но на самом деле это все, что мне нужно, так как я не собираюсь менять сторонние сборки каждый день, просто не хочу делать вещи так тесно связаны.