Я новичок в Java, и книга, которую я использую для изучения, кажется, содержит загадочные примеры и предложения, которые полностью меня смущают.
Я понимаю, что такое интерфейсы и как/где применять эту концепцию в реальном мире. Но что такое фабричные методы? Термин «фабричный метод» неоднозначен (JavaScript имеет для этого другое значение), поэтому я предоставляю фрагмент, который есть в книге, чтобы прояснить мой вопрос. Вот код:
interface Service {
void method1();
void method2();
}
interface ServiceFactory {
Service getService();
}
Интерфейс Service
— это обычный интерфейс. Интерфейс ServiceFactory
выглядит как обычный интерфейс, но это "фабричный метод". Что это? Что это решает и почему я должен их использовать?
ServiceFactory
тоже нормальный интерфейс. Фабричный метод нуждается в некоторой реализации (начиная с Java 8, это может быть метод по умолчанию в интерфейсе), поскольку он должен производить (создавать) экземпляр некоторого типа (отсюда и термин фабрика). Вы можете указать фабричный метод в интерфейсе, но вам все равно нужен конкретный класс фабрики, который создает определенные типы. См. en.wikipedia.org/wiki/Factory_method_pattern. - person Andreas Fester   schedule 03.08.2016