У меня есть приложение, которое мы собираемся использовать из внешней библиотеки.Эта внешняя библиотека является одной из многих, которые предоставляют такую же (или похожую) функциональность.
Возьмите zip-библиотеку в качестве примера, есть много библиотек, которые в основном делают одно и то же, извлекают и сжимают zip-файлы.
Однако каждая библиотека реализует свои публичные классы / интерфейснемного отличается друг от друга, даже если алгоритм внутреннего сжатия такой же, например,
namespace AmazingZipLibrary
{
public class Archive
{
public Zip Add()
{
//Create a zip file
}
}
}
namespace YetAnotherAmazingZipLibrary
{
public class Zip
{
public object Compress()
{
//create a zip file
}
}
}
Как можно использовать библиотеки взаимозаменяемо, не нарушая основное приложение каждый раз, когда мы хотим поменяться или использовать другую библиотеку?Я думаю, что основная причина таких требований - в целях оценки и тестирования.Но также возможно, что появится новая библиотека с плохой задницей, которую мы хотим принять (гипотетически).
Какие шаблоны проектирования могут помочь в этой ситуации?