Как обусловить поведение в модуле глобальным значением конфигурации

Если мы хотим написать S.O.L.I.D. Каков наилучший способ обусловить поведение внутри слабо связанного и тестируемого модуля каким-либо глобальным значением конфигурации?

Лучше ли вводить какой-то объект, содержащий информацию, или просто ссылаться на глобальную статическую / синглтон?

Я работаю с PHP, но я думаю, что этот вопрос не зависит от языка.

Заранее спасибо.

0

Решение

Если у вас есть два различных поведения в зависимости от глобального состояния / конфигурации, то я, вероятно, реорганизовал бы стратегию (шаблон стратегии), а затем внедрил бы стратегию.

Тогда основной задачей будет ввести правильную стратегию в зависимости от конфигурации.

Если стратегия зависит от изменяющейся конфигурации, то есть конфигурации, которая изменяется во время выполнения, тогда стратегия должна быть обернута в поставщика / поставщика. (вероятно, не относится к PHP)

Альтернативой может быть наличие общего типа переключателя объектов, который вводится. Переключатель может быть настроен с основного на возврат true или false.
С объектом-переключателем вы можете иметь более сложную логику, чем с простым логическим значением, но это зависит от варианта использования.

Но мне не нравится альтернатива, потому что было бы проще, если бы класс не знал о двух разных видах поведения.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]