Zgodnie z tym co napisaliśmy w rozdziale
Aplikacja Webowa - Dla początkujących
każdy system informatyczny, w tym także aplikacje webowe, zawsze dotyczą czegoś co występuje w rzeczywistości. Programy odwzorowują rzeczywistość i pomagają nam ją uporządkować i nią zarządzać.
Przykładowo każdy kto interesuje się kinem wie, że w dzisiejszych czasach może wykupić dostęp do interesującego go filmu w "wypożyczalni" online (VOD). System taki przechowuje w swojej bazie
filmy w różnych kategoriach i w różnych cenach, a często także udostępnia dodatkowe informacje takie jak recenzje, opinie, czy otrzymane nagrody.
Inny przykład to aplikacja do zarządzania obiegiem dokumentów w firmie. Dzięki temu, że firma dysponuje takim systemem, pracownicy mogą tworzyć, edytować i przetwarzać dokumenty.
Co więcej ich działania mogą być powiązane z funkcjami pełnionymi w firmie, co bardzo często umożliwia automatyczne przesyłanie dokumentu do przełożonego w celu uzyskania akceptacji.
Łatwo można zauważyć, że każdy system informatyczny posiada zbiór nazwanych elementów, które
razem tworzą domenę jego działań. I tak we wspomnianej aplikacji VOD (po lewej) i w systemie obiegu dokumentów (po prawej) najczęściej wyróżniamy:
Klasa (class)
Wszystkie te elementy to podmioty, które występują w rzeczywistości, a skoro tak, to muszą znaleźć się również w systemie. W tym celu dla każdego z nich przygotowujemy osobny plik java
zawierający klasę, której znaczenie w systemie jest dokładnie takie samo jak znaczenie podmiotu w rzeczywistości. Tak więc dla podmiotu
film utworzymy klasę (już po angielsku) -
Movie,
dla
kategorii filmu -
Category, dla
dokumentu -
Document, dla
załącznika -
Attachment itd.
Ciekawostka. Dlaczego klasy, pola i inne elementy kodu tworzymy w języku angielskim? A to dlatego, że dziś angielski to najpopularniejszy język, nie tylko w biznesie, ale
również w samym programowaniu. W trakcie naszej kariery zawodowej zbudowaliśmy w sumie ponad 30 różnych systemów i tylko 2 (słownie dwa) z nich miały kod napisany po polsku. W sumie to nawet część z Was może
się dziwić, że w ogóle jakieś były pisane w języku polskim. Cóż takie było wymaganie ze strony biznesu. Ale trzeba przyznać, że niektóre nazwy klas wyglądały zacnie, na przykład:
PrzetwarzaczDanychZZewnetrznegoZrodla.
Pole (field)
Tak samo jak w prawdziwym życiu, tak samo w systemie wszystkie takie podmioty posiadają swoje cechy (atrybuty), a także wykonują określone działania. Na przykład atrybutem filmu jest jego tytuł, reżyser,
czy też scenarzysta (także wiele innych jak choćby cena), a dla dokumentu będzie to tytuł, kategoria dokumentu, jego wielkość, czy lista załączników.
Wszystkie takie atrybuty są częścią klas, a dokładniej są zdefiniowanymi polami w klasie. Więc jeśli mówimy na przykład o klasie
Movie, to zgodnie z tym co przed chwilą napisaliśmy,
będzie ona posiadała pola o nazwach: title (tytuł), director (reżyser), scenarist (scenarzysta) itd.
Metoda (method)
Natomiast działania będziemy definiować w postaci metod, najczęściej oznaczających konkretne czynności związane z danym podmiotem i operujące na jego atrybutach, na przykład
addAttachment() - czyli metoda dodająca załącznik do dokumentu, albo
changePrice() - metoda zmieniająca cenę danej rezerwacji (zakładając, że cena jest polem klasy
Reservation).
Obiekt (object)
Klasa z polami i metodami będzie tylko szablonem, na bazie którego w trakcie działania programu będą tworzone obiekty. Tak wiec jeśli mamy klasę
Movie, to klasa
zdefiniowana w pliku jest jedna, ale na jej podstawie możemy tworzyć wiele różnych "żyjących" egzemplarzy tej klasy, które będziemy nazywać obiektami.
Klasy i obiekty - prawdziwa aplikacja
Nasza aplikacja
StartAPPa jest klasycznym przykładem systemu informatycznego i dlatego także posiada swoją domenę.
I tak jeśli wcześniej w przypadku VOD mówiliśmy o aplikacji webowej do przechowywania i wypożyczania filmów,
to tak samo tutaj mamy do czynienia z aplikacją webową, tyle tylko że jej domena nie jest związana z konkretną branżą.
Zaletą takiego podejścia jest, że w trakcie nauki nie przywiązujecie się za bardzo do konkretnego zbioru nazw.
Uczycie się programowania w Javie, a nie programowania w jednej konkretnej domenie.
Jeśli przyjrzycie się naszej aplikacji to zobaczycie, że zawiera ona typowe elementy, zbieżne z tym co pokazaliśmy wyżej w tym rozdziale. Nasza domena to:
W aplikacji
StartAPPa, na formularzu zawansowanym (
Create/Update Item), podczas tworzenia itemu warto zerknąć na zdefiniowane tam listy typów i kategorii.
Każda z pozycji na tych listach to osobny obiekt!
A teraz pytanie...ile musieliśmy zdefiniować klas, aby móc stworzyć tyle obiektów?
Odpowiedź...dokładnie dwie:
Type i
Category. Obie klasy posiadają pola:
name i
code.
Tworząc kolejne obiekty za każdym razem ustawiamy inne wartości w tych polach, stąd też każdy stworzony obiekt przechowuje inne dane.
Ciekawe?
Ciekawie dopiero będzie....zapraszamy do dalszej części kursu...
Autor: Jarek Klimas
Data: 03 stycznia 2024
Labele: Backend, Podstawowy, Java
Czy informacje, które otrzymałeś, były pomocne?
Jeśli tak, zapraszam Cię do podarowania mi kawy.
Masz pytanie dotyczące prezentowanego materiału?
Coś jest dla Ciebie niejasne i Twoje wątpliwości przeszkadzają Ci w pełnym zrozumieniu treści?
Napisz do nas maila, a my chętnie znajdziemy odpowiednie rozwiązanie.
Najciekawsze pytania wraz z odpowiedziami będziemy publikować pod rozdziałem.
Nie czekaj. Naucz się programować jeszcze lepiej.