Рубрики
Без рубрики

Как перестать называть классы Java с помощью “Менеджера” суффикс

Имена классов Java презираются. Давайте изменим это. Помеченный как java, ооп.

Куда бы вы ни посмотрели в Java-приложении, везде есть классы с именем Something Manager. В кэше учетной записи есть диспетчер кэша учетной записи. В свойствах приложения есть Диспетчер свойств приложения. Пользовательская транзакция завершается UserTransactionManager.

Вероятно, в какой-то момент вы назвали класс таким образом.

Пожалуйста, иди и поменяй его.

Что не так с “Менеджером”?

Менеджер – это бессмысленный суффикс. Конечно, вы можете возразить, что нам нужна вещь, чтобы управлять другой вещью, но что вы имеете в виду, когда говорите это? Ты даешь коду менеджера? Это рабочее место? Нужны ли объектам в вашем приложении боссы?

Как это изменить?

Всякий раз, когда я вижу “Manager” в имени класса, это почти всегда избыточно. Недавно я видел класс, который управлял жизненным циклом другого компонента. Он был предсказуемо назван с суффиксом “LifeCycleManager”. Наверняка это тот случай, когда нам нужно назвать класс manager , верно? В конце концов, он управляет жизненным циклом, и это то, что мы на самом деле говорим в реальном мире?

Нет! Неправильно!

Этот класс имел initialize() и методы stop() . Давайте предположим, что класс, которым он “управлял”, назывался MyComponent. На самом деле понятнее и удобочитаемее просто вызвать класс “manager”, Мой жизненный цикл компонента . Код, в котором он “управляется”, становится My Component LifeCycle.initialize() и Жизненный цикл моего компонента.stop()

Эта простая идея применима в большинстве случаев использования, когда я видел суффикс Manager в классе. Только что я открыл базу кода и нашел класс Connection Manager . Некоторые из методов, которые он предоставляет, – это getConnection() , configure() и/| close() . Оставляя в стороне тот факт, что этот класс, вероятно, можно было бы преобразовать в какой-нибудь другой объект, который имеет больше смысла, все, что он действительно делает, - это хранит javax.sql. Источник данных и предоставление некоторого служебного кода вокруг него с конечной целью предоставления действительного java.sql. Подключение к приложению.

Нельзя ли просто вызвать этот класс Db Connection и изменить этот метод getConnection() (который возвращает java.sql. Соединение кстати), чтобы просто получить() или, может быть, как SqlConnection() ? Теперь вместо того, чтобы иметь ConnectionManager.getConnection() |/(что, кстати, тоже совершенно излишне) вместо этого у вас есть DbConnection.get() |/. Позже вы вызываете DbConnection.close() . Нет необходимости в “менеджере”.

Никаких Менеджеров!

Как вы можете видеть, в чистом коде не должно быть менеджеров. Это излишне и ненужно. Это ничего не говорит вам о том, что на самом деле делает класс.

Моя цель – вымирание менеджера. Кто со мной?

Оригинал: “https://dev.to/scottshipp/how-to-stop-naming-java-classes-with-the-manager-suffix-48la”