Куда бы вы ни посмотрели в 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”