LINUX.ORG.RU

[java] Фабрики vs Конструкторы

 


0

2

Почему в java нередко используется фабрика для создания объектов вместо простого создания через конструктор? Типа (примеров тому можно привести и больше):

XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xPath = xpathFactory.newXPath();
Вместо
XPath xPath = new XPath(); 
?

★★

А если это не XPathFactory, а его потомок про которого в данном месте ничего неизвестно? Через конструктор так не сделать.

vega
()

Потому что абстрагирование от способа создания объекта и есть суть фабрики

yoghurt ★★★★★
()

Учи матчасть - изучи что такое фабрика, где и когда она нужна, тогда вопросы отпадут сами собой.

anonymous
()

Потому что конструкторы НЕгибки, НЕполиморфны, НЕочевидны.

Везде, где можно обойтись без конструкторов, используя фабрики, нужно использовать фабрики. (с) Джошуа Блох, разработчик Java 5.0.

iZEN ★★★★★
()

Только не увлекайся сильно. Юзай dependecy injection, где можно. Эти фабрики сильно код захламляют.

dizza ★★★★★
()
Ответ на: комментарий от iZEN

>конструкторы НЕполиморфны

Ох уж эта ваша Джява :)

yoghurt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.