Использование вспомогательного класса для повышения удобства работы с JavaBeans — это какая-то идиома?

#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 дереве и представьте, что вы написали их сами.