Почему в java нередко используется фабрика для создания объектов вместо простого создания через конструктор? Типа (примеров тому можно привести и больше):
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xPath = xpathFactory.newXPath();
XPath xPath = new XPath();