В моем офисе мы работаем с Java, Apache Wicket. Теперь те, кто знаком с Wicket, могут узнать об аннотации SpringBean
. Для тех, кто этого не делает, вы можете подумать об этом как о способе Уикета пообщаться с Весной. Когда класс наследует класс калитки, такой как WebPage
или Panel
, зависимости пружин автоматически вводятся. Но есть способ, чтобы конкретно сказать Spring, чтобы ввести зависимость, если это не подкласс компонента калитки который
Можно ли наследовать классы в java, даже если это не предназначено для этой работы
Injector.get().inject(this);
Он работает как швейцарский нож.
Теперь давайте перейдем к делу. Недавно я увидел, что мой коллега работает над классом, который работает с базами данных (и абсолютно независим от калитки), он жаловался на получение NullPointer, я сказал ему, что он использовал аннотацию SpringBean
&, так как он не использовал класс калитки - родительский класс, он должен был рассказать весну об инъекции или использовать швейцарский нож.
Вместо этого он просто сделал класс расширенным классом WebPage
, который представляет собой веб-страницу. Когда я сказал ему, что это не правильно, поскольку класс не имеет ничего общего с классом WebPage, он сказал, что все в порядке, поскольку оно заставило это работать, и он также будет использовать его везде.
Вопрос в том, правильно ли продлить класс, даже если он не предназначен для этого материала?
Объясните своему коллеге, какое замечательное развлечение у него будет, если ему когда-либо придется пересмотреть этот проект после перерыва. –
Если у вашей компании есть обзоры кода, расскажите об этом другим старшим. Практика нарушения конвенции для «просто работающего» кода - очень и очень страшный прецедент. – Makoto
У нас есть обзоры один на один с нашим боссом, так как мы являемся стартапом, увидим, что я могу сделать – lazyprogrammer