История изменений
Исправление
Legioner,
(текущая версия)
:
По производительности надо мерять.
Есть ещё такой вариант:
abstract interface BaseFactory {
Base create();
}
class AFactory implements BaseFactory {
public Base create() { return new A(); }
}
...
Map<String, BaseFactory> baseFactoryRegistry = new ...;
baseFactoryRegistry.put("one", new AFactory());
...
BaseFactory factory = baseFactoryRegistry.get(str);
Base base = factory.create();
но это уже из разряда паттерн на паттерне паттерном погоняет.
Исходная версия
Legioner,
:
По производительности надо мерять.
Есть ещё такой вариант:
abstract interface BaseFactory {
Base create();
}
class AFactory implements BaseFactory {
public Base create() { return new A(); }
}
...
Map<String, BaseFactory> baseFactoryRegistry;
baseFactoryRegistry("one", new AFactory());
...
BaseFactory factory = baseFactoryRegistry.get(str);
Base base = factory.create();
но это уже из разряда паттерн на паттерне паттерном погоняет.