Один из самых ярких примеров, которые я читал об услугах/фабриках/поставщиках, заключался в том, что они соответствовали: машине, фабрике, которая производит автомобили (например, красную машину, синюю машину), и настраиваемой фабрике, которая производит автомобили (например, высококачественные). автомобили, некачественные автомобили)
Часть, которая меня смущает, - это объяснение «все одноэлементное». Из приведенного выше примера я предположил, что «сервис» — это синглтон, который возвращает сам себя, а фабрика и провайдер — это синглтоны, которые возвращают объекты (каждый из которых уникален). То есть, если бы у одного контроллера была синяя машина, а у другого — красная, то это были бы две разные машины.
Я думаю, что путаница возникает из-за того, что фабрики пишутся двумя разными способами. В одном случае вы возвращаете объект. Это делает его функционально эквивалентным «сервису». В другом случае вы возвращаете функцию, которая является экземпляром объекта, так что все, что использует эту фабрику, может получить новые отдельные экземпляры.
Это верно? Является ли какой-либо из двух методов написания фабрики анти-шаблоном?
factory
. - person Matt Greer   schedule 19.03.2014provider
, почти все были бы в порядке и даже не заметили бы, что чего-то не хватает. - person Matt Greer   schedule 20.03.2014