Нам нужно использовать неуправляемую библиотеку в нашем коде с статическими методами. Я хотел бы представить работу библиотеки как зависимость в моем коде. И помимо статических методов, библиотека имеет метод инициализации и метод настройки, оба являются глобальными. Поэтому я не могу просто обернуть это в классе экземпляра, потому что, если один экземпляр изменит параметр, все остальные экземпляры будут затронуты, и если один экземпляр будет инициализирован, все остальные экземпляры будут повторно инициализированы.
Я думал о том, чтобы представить его как одноэлементный класс. Таким образом, это будет в классе экземпляра, но будет только один экземпляр, поэтому мне не придется беспокоиться об изменении настроек или инициализации. Что вы думаете об этом подходе? Я новичок в шаблоне инъекции зависимостей, и я не уверен, что одноэлементный шаблон является хорошим решением? Каким будет ваше решение в аналогичном случае?
Изменить: Инициализация также принимает параметр, поэтому я не могу просто блокировать вызовы метода и повторно инициализировать и изменять настройки каждый раз, когда он вызывается.
Изменить 2: Вот подписи некоторых методов:
public static void Initialize(int someParameter)
// Parameter can only be changed by re-initalization which
// will reset all the settings back to their default values.
public static float[] Method1(int someNumber, float[] someArray)
public static void ChangeSetting(string settingName, int settingValue)