Когда я разрабатываю свое программное обеспечение, я, как правило, создаю целую тонну ThingyHelper.java, FooHelper.java, BarHelper.java и т. д. Я подсчитал, и в текущем проекте, над которым я работаю, есть что-то около 40 классов. которые выглядят примерно так:
public final class FoobarHelper {
// Prevent instantiation
private FoobarHelper() {throw new AssertionError();}
public static void doSomething() {}
public static int foobar() {}
// And many more
}
У меня такой вопрос: стоит ли объединять все эти классы в огромный класс Helper.java? Оглядываясь вокруг, кажется, что ничего не написано на эту тему. Моя точка зрения такова:
Я должен это сделать, потому что:
- Мне не нужно запоминать, в каком вспомогательном классе он находится. (Это был FooHelper или BarHelper?)
- Просто удобство. Мне не нужно решать, заслуживает ли новый вспомогательный метод отдельного вспомогательного класса или он подходит к одному из 40 существующих вспомогательных классов.
- Если я создам новый вспомогательный метод и решу, что он заслуживает своего собственного вспомогательного класса, я, вероятно, потрачу остаток дня на «эй, а не лучше ли foobar() в этом новом классе?»
- Если пункт 3 верен, другие программисты скажут: «Куда делась foobar()? Это не в FoobarHelper!»
Существует ли соглашение для вспомогательных классов, а если нет, то было бы это ужасной идеей?