#java #javabeans #idioms
#java #javabeans #идиомы
Вопрос:
На работе мне часто приходится иметь дело со сторонними библиотеками, которые интенсивно используют JavaBeans. Поскольку работа с JavaBeans (особенно создание) очень утомительна и нарушает dry (много репликации), я часто пишу вспомогательный класс, чтобы иметь возможность создавать JavaBeans в более «oo-подобном» виде (т. Е. передавать всю необходимую информацию в конструктор), что-то вроде этого
// left out the implementation of the method, just to give an idea
public class MyBean {
public MyBean();
public void setFoo(String foo);
public void setBar(String bar);
}
public MyBeans {
public static MyBean newMyBean(String foo, String bar);
}
Теперь, используя статический импорт, я могу:
MyBean bean = newMyBean(foo, bar);
Вместо:
MyBean bean = new MyBean();
bean.setFoo(foo);
bean.setBar(bar);
Это какая-то идиома, есть ли какие-либо недостатки (я знаю, статический импорт — это своего рода противоречие), и есть ли какие-либо плагины Maven, которые могут генерировать эти вспомогательные классы для меня?
Ответ №1:
Я не знаю ни одного плагина Maven, который создаст эти фабрики для вас, но это простая библиотека генерации кода. Он должен быть настраиваемым для создания различных фабрик с учетом класса, свойства которого вы хотели бы установить, но должны учитывать специфику класса.
Из-за потребностей конфигурации (во всяком случае, на мой взгляд) Я никогда не утруждал себя упаковкой своих реализаций в плагин Maven. Я генерирую их вручную (вместе с параметрами гибкого интерфейса) и больше никогда о них не думаю.
IMO, они обычно требуют вмешательства человека, поэтому не стоит упрощать процесс. Просто сгенерируйте их в обычном src/main/java
дереве и представьте, что вы написали их сами.