Представляет ли мой объект Factory глобальное состояние?

Итак, сделка вот в чём. Мне удалось создать фреймворк без использования глобальных переменных или статических классов / функций.

Я использую форму внедрения зависимостей с использованием Factory. Поскольку фреймворк будет использоваться для разных целей, я создаю более общий Factory, который будет строить ваш класс с его помощью ' s рекурсивно.

Дело в том, что для экономии памяти каждый раз, когда создается экземпляр объекта, Factory сохраняет ссылку на него, поэтому, если другой объект имеет зависимость от этого объекта, Factory нужно будет только вернуть ссылку . Таким образом, нам не нужно создавать экземпляр одного и того же объекта дважды.

Это означает, что во многих классах у нас будет много разных ссылок на один и тот же объект. Например, если я объявляю Blog_model, Blog_controller, Blog_view, Form_validation, чтобы требовать объект Config, для каждого из них будет создан экземпляр со ссылкой на тот же объект Config, хотя и с внедрением.

Я не знаком с модульным тестированием или любой вид автоматического тестирования. Я только что обнаружил, что использование глобальных переменных и статики - это плохо (поэтому я переписываю фреймворк, который использую). Я хочу спросить, вводит ли это глобальное состояние? Это как-то мешает тестированию?

---- Обновление ------

Это среда MVC, написанная на PHP.

5
задан rickchristie 29 April 2012 в 13:06
поделиться