Какой смысл в бобах? - PullRequest
       15

Какой смысл в бобах?

16 голосов
/ 25 ноября 2010

Я выполняю некоторые уроки по JSP, и не понимаю, в чем суть класса EJB. Все, что есть, это получить и установить методы. почему мы их используем?

public class UserData {

String username;
String email;
int age;

public void setUsername( String value )
{
    username = value;
}

public void setEmail( String value )
{
    email = value;
}

public void setAge( int value )
{
    age = value;
}

public String getUsername() { return username; }

public String getEmail() { return email; }

public int getAge() { return age; }

}

и JSP

<jsp:useBean id="user" class="user.UserData" scope="session"/> 
<HTML>
<BODY>
You entered<BR>
Name: <%= user.getUsername() %><BR>
Email: <%= user.getEmail() %><BR>
Age: <%= user.getAge() %><BR>
</BODY>
</HTML>

Ответы [ 6 ]

11 голосов
/ 25 ноября 2010
  1. Bean-компонент получает все преимущества парадигмы Java "однократная запись и запуск в любом месте". Свойства, события и методы Бина, предоставляемые приложению Инструмент строителя можно контролировать.

  2. Бин может быть спроектирован для правильной работы в разных местах, что делает его полезно на мировых рынках.

  3. Может быть предоставлено вспомогательное программное обеспечение, чтобы помочь человеку настроить Бин. Это программное обеспечение требуется только при настройке параметров времени разработки для этого компонента. Это не нужно включать в среду выполнения. Параметры конфигурации Бина могут быть сохранены в постоянном хранилище и восстановлены позже.

  4. Бин может регистрироваться для получения событий от других объектов и может генерировать события, которые отправляются на другие объекты.

Использование скриптлетов (эти <% %> вещи) действительно крайне не рекомендуется с момента рождения taglibs (таких как JSTL ) и EL ( Expression Language ) эти 1034 вещи) более десяти лет назад. Основные недостатки скриптлетов :

  1. Возможность повторного использования: вы не можете повторно использовать скриптлеты.

  2. Заменимость: нельзя делать абстрактные скриптлеты.

  3. OO-способность: вы не можете использовать наследование / композицию.

  4. Отладка: если скриптлет выбрасывает исключение на полпути, все, что вы получаете, это пустая страница.

  5. Тестируемость: скриптлеты не тестируются юнитами.

  6. Поддерживаемость: на каждый раз требуется больше времени для поддержания логики смешанного / загроможденного / дублированного кода.

5 голосов
/ 25 ноября 2010

Основная причина для JavaBeans - возможность повторного использования .JavaBeans можно использовать в JSP, сервлетах и ​​других технологиях Java.

Это простые сериализуемые объекты, которые используются для инкапсуляции множества объектов в один.Т.е. мы можем отправить bean-компонент, полностью определенный для отправки каждого атрибута по отдельности.

3 голосов
/ 05 января 2016

Методы доступа (getter) и mutator (setter) обычно используются для обеспечения инкапсуляции. Поскольку переменные экземпляра являются закрытыми, они могут быть доступны только за пределами класса с помощью этих методов.

То же самое для неспециалиста: возможность вносить изменения в код реализации, не нарушая код других пользователей, использующих ваш код, является ключевым преимуществом инкапсуляции .

2 голосов
/ 15 июня 2016

Я читал Свойства JavaFX и привязка , там я получил практически значение JavaBeans.

Язык программирования Java позволяет инкапсулировать данные внутри объекта, но он не требует какого-либо конкретного именования соглашения для методов, которые вы определяете. Например, ваш код может определить класс Person, который инкапсулирует имя и Фамилия. Но без соглашений об именах разные программисты могут выберите разные имена для этих методов: read_first (), firstName (), getFN () и т. д. будут вполне допустимыми. Тем не менее, есть нет никакой гарантии, что эти имена будут значимыми для других разработчиков.

Компонентная архитектура JavaBeans решает эту проблему путем определение некоторых простых соглашений об именах, которые обеспечивают согласованность проекты. В программировании JavaBeans полные подписи для этих методы будут такими: public void setFirstName (String name), public String getFirstName (), public void setLastName (String name) и public Строка getLastName (). Этот шаблон именования легко узнаваем программистам и инструментам редактирования, таким как IDE NetBeans. В терминологии JavaBeans объект Person называется содержащим Свойства firstName и lastName.

Модель JavaBeans также обеспечивает поддержку сложных типов свойств, плюс система доставки событий. Он также содержит ряд поддержки классы, все они доступны в виде API в пакете java.beans. Поэтому освоение программирования на JavaBeans подразумевает изучение требуемые соглашения об именах и соответствующий API. (Для большего фоновое чтение на JavaBeans в целом, см. урок JavaBeans учебника по Java).

1 голос
/ 12 августа 2016

В основном используется для повторного использования.Это простые сериализуемые объекты, которые используются для инкапсуляции множества объектов в один.

1 голос
/ 25 ноября 2010

У вас может быть JSP без bean-компонентов, однако в результате будет перемешан и код, заботящийся о логике, и код, заботящийся об эстетике сайта.Это не идеально, особенно потому, что в большинстве ситуаций группа людей кодирует логику, а другая группа людей заботится об эстетике, поэтому бобы обеспечивают степень разделения, которая облегчает жизнь людям, создающим сайт.

Бины также позволяют вам повторно использовать код, что является еще одной причиной, по которой вы должны их использовать.

...