Допустим, у меня есть несколько классов, которые имеют одинаковые действия (в моем случае я создаю инфраструктуру плагинов, которая все: Load, Run, Dispose), и я хочу использовать интерфейс, чтобы я мог создать PluginFactory дляобработать инициализацию.Проблема в том, что им всем нужны совершенно разные данные, поэтому методы будут одинаковыми, но параметры будут разными.Есть ли лучшая практика или шаблон проектирования, где я могу использовать интерфейсы и полиморфизм при передаче различных данных в методы?
Обобщения не обязательно решат мою проблему, потому что количество и типы параметров различны для каждого плагина.Я имею в виду создание контейнера внутри методов, когда я реализую их, который извлекает параметры из глобального источника, и поэтому я могу добавить различные зависимости в этот глобальный источник при тестировании, но я не уверен, нарушает ли это какие-либо правила абстракции.
Редактировать:
Вот пример кода:
public interface IPlugin
{
void Load();
}
public Hubbub : IPlugin
{
public void Load(int individualId, IApiDataSource apiDataSource)
{
//code
}
}
public class SysEx : IPlugin
{
Load(OAuthToken token, string connString, User user)
{
//code
}
}
public class FriendPlat: IPlugin
{
Load(string username, string password)
{
//code
}
}