У меня есть пара вспомогательных классов (? extends HelperBase
), которые имеют только общедоступные статические методы. Я хотел бы иметь что-то похожее на то, что фабрика (с поддержкой singleton), но поскольку нет необходимости в экземпляре, я не уверен, какой путь лучше.Фабрика для вспомогательных классов со статическими методами?
В конце концов, я хотел бы иметь что-то вроде:
enum HELPER_TYPE {
Type_A
}
abstract class HelperBase {
abstract void do();
static HelperBase getHelper(HELPER_TYPE type) {
// ...
}
}
class Helper1 extends HelperBase {
static void doImpl() {
// ... impl here
}
void do() {
doImpl();
}
}
// ... and then:
HelperBase helper = HelperBase.getHelper(HELPER_TYPE.Type_A);
helper.do();
Есть ли лучший способ? Любое предложение будет оценено по достоинству.
Так вы просто хотите назвать 'static' метод конкретного' HelperBase' подкласса? –
@Rohit Jain, да. Но я хотел бы, чтобы помощники реализовали интерфейс маркера или расширили абстрактный базовый класс. – thelost
Зачем вам это нравится? –