2014-12-03 5 views
2

У меня есть класс действия, который имеет приблизительно 30 переменных. Getters и seters для этих полей испортили мой код и добавили ненужные строки. Есть ли способ отразить все поля private и сделать их «видимыми» для Struts?Отражение в Struts 2

+0

Где вы хотите использовать эту функциональность? На презентационном уровне (экранах)? –

+0

Да @Buhake Sindi. У Struts, похоже, есть доступ к переменным только через геттеры и сеттеры, но это не очень хорошая практика. –

+3

@ VladMatvei Это * хорошая практика использования геттеров и сеттеров в Java Beans, но ваш вопрос является дополнительным порядковым +1. –

ответ

0

Звучит как неправильный подход ко мне.

Getters and setters довольно фундаментальны в концепции Java OO и инкапсуляции. Если вам не нравится , пишут геттеры и сеттеры либо используют фреймворк, как Lombok (http://projectlombok.org/index.html), либо выбирают другой язык, например Gradle.

Большинство - если не все - Java-код использует их, поэтому, возможно, ваше восприятие, что они испортили код, немного ошибочно. Хорошая среда IDE должна помочь вам справиться с этим.

О, и Reflection добавляет огромные эксплуатационные издержки и полностью не предназначен для короткого замыкания доступа к частным членам.

0

Вам не нужны геттеры и сеттеры для работы OGNL. Но не делайте этого.

Если ваша проблема связана с «накладными расходами» более крупного класса, тогда создайте объект, который инкапсулирует состояние представления и раскрывает только это. Вы также можете сделать это через интерфейс ModelDriven; некоторые оговорки применяются.

Геттеры и сеттеры являются равными для курса на Java. Привыкай к этому. Используйте среду IDE, которая автоматически складывает простые методы getXxx/setXxx. Начните использовать шаблон презентатора, чтобы инкапсулировать состояние представления и использовать их в качестве слоя перевода между веб-сайтом и объектами бизнес-домена.

+0

Мои объекты неизменяемы, и я думаю, что интерфейс ModelDriven не будет работать для меня. Но я мог бы написать объект DTO, будет ли это хорошим подходом? –