Стандартный фабричный метод проектирования шаблонов разговоров из 4 классов.
Создатель, Продукт и их конкретные реализации.
Таким образом, для каждого продукта нам нужно создать соответствующую фабрику, у которой есть методы для создания продукта.
Но я также видел сценарии, в которых люди объявляют конструктор как закрытый и имеют статический метод, который создает объект того же класса. Нечто похожее на то, что мы делаем с синглетами.
Например, getByname является одним из статических методов InetAddress, который возвращает один из его подклассов в зависимости от того, что является параметром.
и люди называют это фабричным методом.
Это также пример шаблона фабричного метода?
он содержит if-else-if внутри метода для декодирования параметра или оператора switch?
Но разве использование условных операторов switch n не считается плохой практикой проектирования ОО?