Budowanie komponentów w języku Java nadający się do wielokrotnego użycia czyli Java beans. Projektowanie i rozmieszczenie ziaren ułatwia zestaw bdk. Klasa Javy można konwertować do ziarna po i zmodyfikowaniu w taki sposób, aby odpowiadała specyfikacji Java beans. Przykładem Java bean może być klasa, która dokonuje sprawdzenia poprawności - tłumacząc z języka angielskiego walidacji - w oparciu o pewne dane wejściowe.
W aplikacji najlepiej z projektować większość komponentów, związane z interfejsem graficznym, jako ziarna. Nawet, jeżeli niektóre ziarna nie muszą być związane z interfejsem graficznym. Dzieje się tak dlatego, że komponenty związane z interfejsem graficznym, które zaprojektowano jako ziarna, można wykorzystać ponownie w wielu aplikacjach Javy i łatwo wymienić w istniejących fragmentach kodu, a dzięki temu stają się częścią aplikacji. Przykładem JavaBean związanego z interfejsem graficznym jest ziarno, które wyświetla pasek postępu (po angielsku progress bar). Taki pasek postępu można wykorzystywać wszędzie tam, gdzie należy wyświetlić status ukończenia procesu.
Czy to wejście do programowania sieciowego?
Ziarno języka Javy posiada zestaw właściwości. Niektóre z nich (a może większość) definiuje stan ziarna, owe właściwości mogą być po prostu zmiennymi klasy ziarna. W ziarnie są też metody dostępowe (po angielsku accessor methods), którymi otrzymuje się, angielskie get, i ustawia, angielskie set, właściwości tych wartości. Stąd mamy powszechna obecnie w informatyce pojęcia pochodzące z języka angielskiego czyli gettery i setery. kiedy właściwości ulegają zmianie, ziarno może wyzwolić zdarzenia i poinformować o tej zmianie odbiorniki (angielski termin listeners), umożliwiając im adekwatna reakcję. Ziarno może również odpowiadać na zdarzenia zewnętrzne, często generowane przez inne ziarno. Przykładowo pasek postępu może mieć właściwość o nazwie procent, pokazującej, jaki odsetek procesu został już ukończony. Takiej sytuacji zdefiniowana mamę dwa stany paska postępu jako nieukończony i ukończony. Poza tym właściwości procent, raczej i wartość, można składować w zmiennej klasy ziarna. Kiedy ustawimy ową właściwość na pewno wartość, zdarzenie zmiany jest wyzwalane. Mówimy o zmianie w wyniku której pasek postępu przesuwa się do przodu. Mówimy wtedy, że omawiany proces wyzwala zdarzenie zmiany, a pasek postępu odbiera ten zmiany i wyciąga z niej konsekwencje. Jaki mamy etapy podczas projektowania ziaren, AB napisane ziarna były funkcjonalnie kompletne i dobrze napisane?
Zdefiniowanie zbioru zdarzeń, które ziarno będzie wyzwalało , a które będzie odpowiadało.
Zdefiniowanie interfejsu odbiornika czyli listenera. Wszystkie odbiorniki muszą go zaimplementować.
Napisanie klasy ziarna, która będzie zawierała jego właściwości, metody dostępu do nich oraz metody rejestracji odbiorników. Jak dzielimy właściwości ziarna? Otóż występują właściwości ograniczane albo związane. Te pierwsze (nazywane po angielsku constrained properties) oznaczają, ziarno wysyła komunikaty do odbiorników przed zmianą właściwości; każdy odbiornik może zatrzymać proponowane zmiany. Inaczej jest w przypadku właściwości związanych (z angielskiego bound properties) tutaj ziarno wysyła komunikaty po tym, gdy właściwość ulegnie zmianie. Wtedy odbiorniki podejmują czynności dostosowawcze
Pasek postępu a ziarna Java
Wracając do przykładu z paskiem postępu można powiedzieć, że procent jest właściwością związaną, gdyż potem jak wzrasta jego wartość, pasek postępu odpowiada na tą zmianę.
Następne zagadnienie które należałoby omówić w przypadku ziaren w kontekście ich trwałości wraz z właściwościami definiującymi jego stan, jest serializacja. Angielski termin persistence oznacza trwałość, czyli właściwość umożliwiającą zapisywanie i wyszukiwanie stanu ziarna w trwałej pamięci. Dlatego wymagana jest tym miejscu w serializacja, umożliwiające zapis stano właściwości na przykład w bazie danych.
Do wyszukiwania metainformacji o ziarnie zestaw BDK stosuje introspekcyjny interfejs API.
źródła wiedzy na temat ziaren języka Java:
https://edu.pjwstk.edu.pl/wyklady/mpr/scb/W3/W3.htm
Programowanie komponentowe - wykład dr Zofii Kruczkiewicz z Politechniki Wrocławskiej:
http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/javapk/PK_1.pdf