Я заметил много общего между этими двумя понятиями. Они оба имеют защищенные атрибуты и простые классы. Но я хотел бы знать, в чем их разница
Я заметил много общего между этими двумя понятиями. Они оба имеют защищенные атрибуты и простые классы. Но я хотел бы знать, в чем их разница
ПОЖО
POJO означает Plain Old Java Object. Это обычный объект Java, не связанный какими-либо специальными ограничениями, которые не налагаются спецификацией языка Java, и не требует пути к классам. POJO используются для повышения удобочитаемости и возможности повторного использования программы. POJO получили наибольшее признание, потому что их легко написать и легко понять. Они были представлены в EJB 3.0 компанией Sun Microsystems.
POJO не должен содержать следующее:
Расширить предварительно указанные классы, например:
public class GFG extends javax.servlet.http.HttpServlet {...}
не класс POJO.Реализуйте заранее заданные интерфейсы, например,
public class Bar implements javax.ejb.EntityBean {...}
не класс POJO.Предопределенные аннотации, например,
@javax.persistence.Entity public class Baz {...}
не класс POJO.POJO в основном определяют сущность. Если вам нужен класс сотрудников в вашей программе, вы можете создать POJO следующим образом:
Приведенный выше пример является четко определенным примером класса POJO. Как видите, ограничений на модификатор доступа к полям нет. Они могут быть частными, стандартными, защищенными или общедоступными. Вам также не нужно включать в него какие-либо конструкторы.
POJO — это объект, который инкапсулирует бизнес-логику. На следующем изображении показан практический пример класса POJO. Контроллеры взаимодействуют с вашей бизнес-логикой, которая, в свою очередь, взаимодействует с POJO для доступа к базе данных. В этом примере объект базы данных представлен POJO. Этот POJO имеет тех же членов, что и объект базы данных.
БОБЫ
Фасоль — это особый вид POJOS. Существуют некоторые ограничения на POJO, чтобы они могли быть компонентами.
Геттеры и сеттеры имеют специальные имена в зависимости от имени поля. Например, если имя поля — someProperty, то его геттер предпочтительно будет:
и сеттер будет вызываться:
Видимость геттеров и сеттеров обычно общедоступна. Геттеры и сеттеры обеспечивают полное ограничение полей.
Если вы установите видимость возраста как общедоступную, то ее сможет использовать любой объект. Предположим, вы хотите, чтобы возраст не был равен 0. В этом случае вы не можете контролировать. Любой объект может установить его равным 0. Но с помощью метода установки у вас есть контроль. У вас может быть условие в вашем методе установки. Точно так же для метода получения, если вы хотите, чтобы ваш возраст был равен 0, тогда он должен возвращать значение null, вы можете добиться этого с помощью метода получения, как в следующем примере:
Результат:
ВЫВОД
Классы POJO и Beans используются для определения объектов Java, чтобы повысить их удобочитаемость и возможность повторного использования. POJO не имеют других ограничений, в то время как Beans — это специальные POJO с некоторыми ограничениями.
Источник: POJO vs Java Beans (см. интересную сравнительную таблицу в конце).
Единственное заметное отличие заключается в том, что Java Bean может быть сериализован (хотя это не указано в спецификации), а POJO может наследоваться только от объекта.
ПОЖО :
Бин (JavaBean) :
Пример:
Я предлагаю вам просмотреть этот документ для получения дополнительной информации: «Разница между Java Bean и POJO» и спецификацией JavaBeans .
Определение POJO (Википедия):
Определение JavaBean (Википедия):
Компонент в Java определяется в спецификации JavaBeans :
В переводе на испанский:
Для компонента определены дополнительные элементы, такие как номенклатура атрибутов и методов, методы доступа к атрибутам, поддержка событий и другие.
POJO означает Plain Old Java Object. Это относится к классу с закрытыми или защищенными атрибутами, который предоставляет только защищенные или общедоступные методы получения и установки для доступа к атрибутам. Подобно тому, как вы определяете сущность. POJO — это JavaBean, тогда как JavaBean не обязательно является POJO.