Приложение базы данных, в котором я сейчас работаю, сохраняет всевозможные настройки в базе данных. Большинство этих настроек настраивают определенные бизнес-правила, но есть и другие вещи.Доступ к глобальным настройкам приложения
Приложение содержит объекты, которые специально выполняют определенную задачу, например, определенный сложный расчет. Те объекты, которые не являются объектами UI, тестируются на единицу, но также нуждаются в доступе к множеству этих глобальных настроек. Способ, которым мы реализовали это прямо сейчас, заключается в предоставлении свойств объектов, которые заполняются Контроллером приложений во время выполнения. При тестировании мы создаем объекты в тесте и заполняем значения для тестирования (а не из базы данных).
Это работает лучше, в любом случае намного лучше, чем для того, чтобы все эти объекты нуждались в некотором глобальном объекте . объект --- это, конечно, эффективно делает модульное тестирование невозможным :) Недостатком может быть то, что вам иногда нужно установить дюжину свойства, или что вам нужно, чтобы эти свойства «перколировали» в под-объекты.
Таким образом, общий вопрос:: как вы предоставляете доступ к глобальным параметрам приложения в своих проектах, не требуя глобальных переменных, сохраняя возможность модульного тестирования кода? Это должна быть проблема, которая была решена в 100 раз ...
(Примечание: я не слишком опытный программист, как вы заметили, но я люблю учиться! И, конечно же, я «Я уже делал исследования в этой теме, но я действительно искал некоторые из первых рук)