должна ли фабрика использовать другую фабрику, если для создания объекта нужен другой объект? - PullRequest
3 голосов
/ 26 октября 2010

Если у меня есть фабрика, которая создает объект, которому нужен экземпляр другого объекта, следует ли мне использовать другую фабрику, ответственную за создание объекта этой секунды, или оригинальная фабрика должна обрабатывать это?

Ответы [ 3 ]

2 голосов
/ 26 октября 2010

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

1 голос
/ 26 октября 2010

Как указано в двух других ответах, это зависит от уровня необходимой вам абстракции.Примите во внимание тестируемость и расширяемость.Если второй объект предназначен для создания с помощью фабричного метода, тогда да.Вы сплетаете обе модели для совместной работы.Просто относитесь к нему как к черному ящику, как вы изначально хотели.

Добавьте больше подробностей, если вы хотите получить более подробный ответ от меня.

1 голос
/ 26 октября 2010

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

Хитрость для такого рода вопросов заключается в том, чтобы знать, когда игнорировать правила разработки программного обеспечения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...