Chciałbym wykorzystać utworzony wcześniej interfejs Tree<T> do zaimplementowania algorytmu QuickSort. Algorytm ten opiera się o podział elementów na dwie grupy – mniejsze oraz większe od wybranego. Operację powtarza się aż do uzyskania jednoelementowych grup.
Algorytm może działać w oparciu o strukturę drzewiastą – dla ...
Więcej…
Tworzenie złożonych typów generycznych nie jest prostym zagadnieniem. Dlatego też spróbuję najpierw omówić podstawy.
Utworzyłem interfejs do struktur drzewiastych, który będę wykorzystywał później między innymi w połączeniu z encjami. Interfejs nie określa jednoznacznie typu węzłów drzewa, aby można było go zastosować w różnych sytuacjach:
import ...
Więcej…
Najprostrzymi składnikami JBoss Seam udostępniającymi funkcjonalność są akcje. W odniesieniu do EJB, akcja jest po prostu bezstanowym komponentem sesyjnym.
Ale po kolei… File→New→Seam Action – wypełniam tylko Seam component name wpisując SampleAction. Klikam Finish. Otrzymuję kilka nowych plików:
sampleAction.xhtmlw projekcie aplikacji WWW,
SampleAction.javaplik z interfejsem lokalnym komponentu,
SampleActionBean.javaplik ...
Więcej…
software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification
elementy oprogramowania (klasy, moduły, funkcje itp.) powinny być otwarte na rozbudowę, ale zamknięte na zmiany
źródło: Wikipedia
Zasada brzmi niezwykle mądrze, zawiera ważne przesłanie i… jest kompletnie niezrozumiała. ...
Więcej…
Dzisiaj mam zamiar poruszyć kwestię związaną z analizą obiektową i projektowaniem oprogramowania. Hermetyzacja czy też enkapsulacja (ang. encapsulation) to ukrywanie pól klasy (oznaczanie jako private) i ewentualnie udostępnianie ich za pośrednictwem metod. Lecz hermetyzacja zmienności jest trochę innym pojęciem, związanym z oddzielaniem zmiennej funkcjonalności.
Stosowanie hermetyzacji ...
Więcej…