Название в значительной степени суммирует его.Должен ли статический метод «create() Factory Class? Или сделать Singleton Factory Class?
У меня есть фабричный класс, который будет строить экземпляр другого класса, когда вызывается метод create()
. У меня есть настройки моего класса фабрики быть синглтон, который заставляет invokation выглядеть так:
SomeClass clazz = (SomeClass) FactoryClass.getInstance().create(ENUM.TYPE);
Это гарантирует, что моя фабрика является поточно, но может привести к блокировке и т.д.
Если мой завод а не одиночный, я мог бы вместо этого установить мой метод .create()
: static
, что обеспечит аналогичные результаты.
SomeClass clazz = (SomeClass) FactoryClass.create(ENUM.TYPE);
Предполагая, что несколько потоков могут попытаться создать экземпляры объектов через FactoryClass, что лучше? Не оба способа сделать это обеспечивают одинаковый уровень безопасности потоков?
Безопасность потока будет исходить из всех необходимых объектов, создаваемых локально, т.е. в теле метода. –
Одиночный подход позволяет переключаться между несколькими реализациями фабрики. – Detheroc
@ Detheroc as-in несколько заводов? Я не уверен, что понимаю, извините. – SnakeDoc