Итак, вот сделка.Мне удалось создать фреймворк без использования глобальных или статических классов / функций.
Я использую форму внедрения зависимостей с использованием Factory.Поскольку фреймворк будет использоваться для разных целей, я создаю более универсальную фабрику, которая будет создавать ваш класс с его рекурсивными зависимостями.
Дело в том, что для сохранения памяти каждый раз, когда создается объект,Фабрика хранит ссылку на него, поэтому, если другой объект имеет зависимость от этого объекта, Фабрике нужно будет только вернуть ссылку.Таким образом, нам не нужно создавать экземпляр одного и того же объекта дважды.
Это означает, что во многих классах у нас будет много разных ссылок на один и тот же объект.Например, если я объявлю Blog_model, Blog_controller, Blog_view, Form_validation для запроса объекта Config, каждый из них будет создан со ссылкой на тот же объект Config, хотя и с инъекцией.
Я не знаком смодульное тестирование или любой вид автоматического тестирования.Я только что обнаружил, что использование глобальных и статических данных плохо (именно поэтому я переписываю фреймворк, который использую).Что я хочу спросить, так это ввести глобальное состояние?Это как-то мешает тестированию?
---- Обновление ------
Это среда MVC, написанная на PHP.