Я пытаюсь избавиться от статических классов, статических вспомогательных методов и одноэлементных классов в моей базе кода. В настоящее время они довольно распространены по всему коду, особенно для классов полезности и библиотеки протоколирования. Это в основном связано с необходимостью насмешливой способности, а также объектно-ориентированными проблемами проектирования и разработки, например. расширяемость. Возможно, мне также понадобится ввести некоторую форму инъекции зависимостей в будущем и хотелось бы оставить для этого открытую дверь.Как следует распространять общие ссылки в сборке?
В основном, проблема, с которой я столкнулся, касается метода прохождения часто используемых ссылок. Это объекты, которые используются почти для каждого класса в базе кода, такие как интерфейс ведения журнала, интерфейс класса утилиты (вспомогательный) и, возможно, экземпляр класса, который содержит внутреннее общее состояние для сборки, к которой относится большинство классов.
Есть два варианта, насколько мне известно. Один из них - определить класс (или интерфейс), в котором хранятся общие ссылки, контекст, если вы хотите, и передать контекст каждому созданному объекту. Другой вариант - передать каждую общую ссылку почти каждому классу в виде отдельного параметра, который увеличит количество параметров конструкторов классов.
Какой из этих методов лучше, каковы плюсы и минусы каждого, и есть ли лучший способ для этой задачи?
исследований [Dependency Injection] (https://www.google.com/search?q=dependency+injection+.net). Это слишком широкая тема для ответа на этом форуме. –