"Tutaj jesteś."

„Zastanowiłem się nad tym i postanowiłem dać ci jeszcze jedną małą lekcję, która bardzo ci się przyda. Dopóki nie pracujesz jako programista, prawdopodobnie nigdy nie spotkasz się ze specjalną terminologią, więc chcę ci teraz przedstawić kilka popularnych pojęć”.

„ Około 10 lat temu Enterprise  Java Beans  ( EJB ) stał się szeroko stosowany” .

„Co oznacza JavaBeans?”

„JavaBeans w zasadzie oznacza ziarna kawy (Java to rodzaj kawy). To humor IT”.

„Logika biznesowa programu przybrała formę grupy obiektów wysokiego poziomu lub fasoli, które mogły wymieniać komunikaty, zapisywać się, odnajdywać się po imieniu i dużo więcej. Zwykle osiągano to za pomocą specjalnego super- fantazyjna klasa nadrzędna, chociaż istniały inne podejścia. Zachowanie takich obiektów było ściśle regulowane”.

„Trzy najbardziej znane rodzaje fasoli EJB to:”

Entity Bean to komponent bean, którego celem jest przechowywanie określonych danych. Ten typ komponentu bean ma wbudowany mechanizm zapisywania siebie i swoich pól w bazie danych. Ten typ obiektu można zniszczyć, a następnie odtworzyć później z bazy danych. Ale oprócz przechowywania danych nie ma żadnej logiki”.

Bean sesyjny to funkcjonalny komponent bean. Każdy komponent bean sesyjny ma swoją własną funkcję. Jeden robi jedną rzecz, a drugi coś innego. Takie komponenty bean działają z innymi obiektami i komponentami bean, a nie z własnymi danymi”.

Ziarna sesyjne dzielą się na dwie kategorie”.

Bezstanowy komponent sesyjny to komponent bean, którego wewnętrzne zmienne nie przechowują ważnych danych potrzebnych do działania. Ten typ komponentu bean można zniszczyć, a następnie odtworzyć, i będzie on spełniał swoje funkcje tak samo jak poprzednio”.

Statefull Session Bean to komponent bean, który wewnętrznie przechowuje dane, których używa podczas pracy. Jeśli wywołamy metody na takim komponencie bean, to każde kolejne wywołanie może wykorzystywać część danych przekazanych komponentowi bean w poprzednich wywołaniach. Mimo to ten komponent bean nie jest tym samym, co zwykły przedmiot”.

„Ale używanie fasoli też nie było takie wspaniałe, więc wkrótce wahadło przechyliło się w przeciwnym kierunku. A programiści zaczęli częściej używać zwykłych obiektów. Wymyślili nawet specjalną nazwę”.

POJO to zwykły stary  obiekt  Java . Obiekty te nie miały żadnych superfunkcji i nie dziedziczyły superobiektów. Były to zwykłe obiekty Java

„Kiedy poznasz EJB w praktyce, zrozumiesz różnicę. Z grubsza mówiąc, POJO to nóż, a EJB to szwajcarski scyzoryk, którego możesz także używać do wykonywania połączeń telefonicznych”.

„Ciekawe porównanie”.

– Tak, i jeszcze jedna rzecz.

„Z biegiem czasu obiekty i klasy zaczęły się specjalizować. W rezultacie programiści zidentyfikowali pewne role i nadali nowe nazwy odpowiednim obiektom”.

„Obiekt przesyłania danych ( DTO ) to obiekt stworzony do transportu danych. Obiekty te mają zwykle dwa wymagania. Muszą: a) mieć możliwość przechowywania danych, b) być możliwe do serializacji. Innymi słowy, służą wyłącznie do przesyłania danych ”.

„Tworzysz obiekt, zapisujesz w nim wymagane dane z logiki biznesowej, serializujesz go do formatu JSON lub XML i wysyłasz tam, gdzie ma się udać. Lub odwrotnie: przychodzi wiadomość, deserializujesz ją do obiektu DTO i wyodrębnić z niego dane."

Encja to obiekt przechowywany w bazie danych. Ale nie zawiera żadnej logiki biznesowej. Można powiedzieć, że to dane modelu biznesowego”.

„Mamy również obiekt dostępu do danych ( DAO ). DAO służy do zapisywania obiektów w bazie danych i pobierania ich z bazy danych. Jednostka tego nie robi, ponieważ nie ma żadnej logiki, więc nie może zapisywać cokolwiek gdziekolwiek."

Przykład:

Relacja między DAO a podmiotem
UserEntity user = UserDAO.getUserById("1535");
if (user.getAge() > 18)
{
 user.setMobilization(true);
 UserDAO.save(user);
}
Uwagi
UserEntity is a class that stores user data
UserDAO is a class that retrieves data (UserEntity objects) from the database and stores it there again after modifying it.

"To wszystko na teraz."

„Chociaż jest to krótka lekcja wprowadzająca, w tej chwili nadal nie będziesz w stanie zrozumieć więcej. Moglibyśmy spędzić dni, rozmawiając o każdym z tych tematów, a moglibyśmy spędzić lata, omawiając EJB”.

„Ale chcę, żebyś przynajmniej był w stanie wyobrazić sobie, co się mówi, jeśli natkniesz się na te rzeczy w rozmowach i wiadomościach, na forach lub w wywiadzie”.

„Hmm. Dziękuję, Bilaabo. Tak, myślę, że nie znam wystarczająco terminów technicznych. Jeszcze raz bardzo dziękuję”.