Здравствуйте, Аноним, Вы писали:
А>Возьмем модульную архитектуру , есть несколько базовых типов объектов, каждый базовый тип описан в своем модуле. А>У каждого базового типа есть производные типы, в зависимости от состояния программы ( оно одно для всех ) используется тот или иной производный тип.
Если конкретные классы зависят от состояния, то пусть само состояние их создает (через абстрактную фабрику например). Фабричный метод используется когда в сам класс вложенна определенная логика, у вас же логика устанавливается внешним состоянием.