logo

POJO

POJO в Java означава Plain Old Java Object. Това е обикновен обект, който не е обвързан от никакви специални ограничения. Файлът POJO не изисква специален клас път. Повишава четливостта и възможността за повторна употреба на Java програма.

POJO вече са широко разпространени поради лесната им поддръжка. Те са лесни за четене и писане. POJO класът няма никаква конвенция за именуване на свойства и методи. Не е обвързан с нито един Java рамка; всяка Java програма може да го използва.

Терминът POJO е въведен от Мартин Фаулър (Американски разработчик на софтуер) през 2000 г. е наличен в Java от EJB 3.0 от sun microsystem.

Като цяло POJO клас съдържа променливи и техните Getters и Setters.

Класовете POJO са подобни на Beans, тъй като и двата се използват за дефиниране на обекти за увеличаване на четливостта и повторната употреба. Единствената разлика между тях е, че Bean файловете имат някои ограничения, но POJO файловете нямат специални ограничения.

Пример:

Класът POJO се използва за дефиниране на обектните обекти. Например, можем да създадем клас POJO за служители, за да дефинираме неговите обекти.

По-долу е даден пример за Java POJO клас:

Employee.java:

 // POJO class Exmaple package Jtp.PojoDemo; public class Employee { private String name; private String id; private double sal; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public double getSal() { return sal; } public void setSal(double sal) { this.sal = sal; } } 

Горният клас служители е пример за POJO клас служители. Ако работите върху Eclipse, можете лесно да генерирате Setters и Getters, като щракнете с десния бутон върху програмата Java и отидете до Source-> Generate Getters и Setters.

POJO

Щракнете с десния бутон върху програмата Java и изберете Генериране на средства за получаване и настройка.

POJO

Сега щракнете върху Генерирай опция, дадена в долната част на прозореца за генериране. Той автоматично ще генерира сетери и гетери.

какво прави ravel в python

Свойства на POJO клас

По-долу са някои свойства на класа POJO:

  • Класът POJO трябва да е публичен.
  • Трябва да има публичен конструктор по подразбиране.
  • Може да има конструктор на аргументи.
  • Всички обекти трябва да имат някои публични Getters и Setters за достъп до стойностите на обекта от други Java програми.
  • Обектът в POJO Class може да има всякакви модификации на достъпа като частен, публичен, защитен. Но всички променливи на екземпляра трябва да бъдат частни за подобрена сигурност на проекта.
  • POJO клас не трябва да разширява предварително дефинирани класове.
  • Не трябва да прилага предварително зададени интерфейси.
  • Не трябва да има предварително зададена анотация.

Работа на POJO Class

Класът POJO е обектен клас, който капсулира бизнес логиката. В MVC архитектура, контролерът взаимодейства с бизнес логиката, която контактува с POJO клас за достъп до данните.

По-долу е работата на класа POJO.

POJO

Как да използвате POJO клас в Java програма

Класът POJO е създаден за използване на обектите в други Java програми. Основното предимство на класа POJO е, че няма да се налага да създаваме обекти всеки път в други Java програми. Просто можем да осъществим достъп до обектите с помощта на методите get() и set().

За достъп до обектите от класа POJO следвайте стъпките по-долу:

  • Създайте обекти от клас POJO
  • Задайте стойностите с помощта на метода set().
  • Вземете стойностите с помощта на метода get().

Например, създайте файл с клас MainClass.java в рамките на същия пакет и напишете следния код в него:

динамичен масив java

MainClass.java:

 //Using POJO class objects in MainClass Java program package Jtp.PojoDemo; public class MainClass { public static void main(String[] args) { // Create an Employee class object Employee obj= new Employee(); obj.setName('Alisha'); // Setting the values using the set() method obj.setId('A001'); obj.setSal(200000); System.out.println('Name: '+ obj.getName()); //Getting the values using the get() method System.out.println('Id: ' + obj.getId()); System.out.println('Salary: ' +obj.getSal()); } } 

Изход:

 Name: Alisha Id: A001 Salary: 200000.0 

От горния пример можем да видим, че имаме достъп до свойствата на клас POJO в MainClass.java.

POJO е подобен на Bean Class, така че хората често се бъркат между тях; нека видим разликата между POJO и Bean.

Java Bean

Java Bean клас също е обектен клас, който капсулира няколко обекта в един файл (Bean Class File). Има някои разлики между POJO и Bean.

Java POJO и Bean накратко:

  • Всички Bean файлове могат да бъдат POJO, но не всички POJO са bean-ове.
  • Всички Bean файлове могат да имплементират сериализуем интерфейс, но не всички POJO могат да имплементират сериализуем интерфейс.
  • И двете свойства трябва да са частни, за да имате пълен контрол върху полетата.
  • Свойствата трябва да имат getters и setter за достъп до тях в други Java програми.
  • Класът Bean е подмножество на класа POJO.
  • Няма голям недостатък при използването на POJO, но няколко недостатъка може да са използването на класа Bean.
  • POJO се използва, когато искаме да предоставим пълен достъп на потребителите и да ограничим нашите членове. И Bean се използва, когато искаме да предоставим частичен достъп на членовете.

POJO Vs. Боб

POJO Боб
В Pojo няма специални ограничения освен конвенциите на Java. Това е специален тип POJO файлове, които имат някои специални ограничения, различни от конвенциите на Java.
Той осигурява по-малък контрол върху полетата в сравнение с Bean. Осигурява пълна защита на полетата.
Файлът POJO може да имплементира интерфейса Serializable; но не е задължително. Класът Bean трябва да реализира интерфейса Serializable.
Класът POJO може да бъде достъпен чрез използване на техните имена. Класът Bean може да бъде достъпен само чрез използване на гетери и сетери.
Полетата могат да имат всеки от модификаторите за достъп, като публичен, частен, защитен. Полетата могат да имат само частен достъп.
В POJO не е необходимо да има конструктор без аргументи; може и да го няма. Трябва да има конструктор без аргументи.
Няма никакви недостатъци при използването на POJO Недостатъкът на използването на Bean е, че конструкторът по подразбиране и публичният сетер могат да променят състоянието на обекта, когато той трябва да бъде неизменен.