Przejdź do głównej zawartości

Posty

Wyświetlanie postów z listopad, 2023

Odkryj Moc Hermetyzacji: Jak Tworzyć Solidne Encje

W świecie programowania obiektowego, termin „hermetyzacja” odgrywa kluczową rolę. Jak Grady Booch, jeden z pionierów programowania obiektowego, określił w swojej książce 'Object-Oriented Analysis and Design':  Hermetyzacja to proces kompartmentalizacji elementów abstrakcji, które stanowią jej strukturę i zachowanie; kompartmentalizacja służy do ukrycia wewnętrznych mechanizmów działania obiektów i ujawniania jedynie tych aspektów, które są zewnętrznie widoczne. To właśnie hermetyzacja wyróżnia dobrze zaprojektowane obiekty od prostych kontenerów danych. Przyjrzyjmy się, jak ten koncept wpływa na projektowanie encji. Problem Encji Anemicznych: Przykład Dostępności W tradycyjnym podejściu anemicznym, encje często są traktowane jako proste kontenery danych. Przykładem może być klasa `Availability`, która przechowuje informacje o dostępności terminu, ale sama w sobie nie zawiera żadnej logiki biznesowej: ```java class Availability {     private LocalDate date;     private boolean i

Odkryj Moc Hermetyzacji: Jak Tworzyć Solidne Encje

W świecie programowania obiektowego, termin „hermetyzacja” odgrywa kluczową rolę. Jak Grady Booch, jeden z pionierów programowania obiektowego, określił w swojej książce 'Object-Oriented Analysis and Design':  Hermetyzacja to proces kompartmentalizacji elementów abstrakcji, które stanowią jej strukturę i zachowanie; kompartmentalizacja służy do ukrycia wewnętrznych mechanizmów działania obiektów i ujawniania jedynie tych aspektów, które są zewnętrznie widoczne. To właśnie hermetyzacja wyróżnia dobrze zaprojektowane obiekty od prostych kontenerów danych. Przyjrzyjmy się, jak ten koncept wpływa na projektowanie encji. Problem Encji Anemicznych: Przykład Dostępności W tradycyjnym podejściu anemicznym, encje często są traktowane jako proste kontenery danych. Przykładem może być klasa `Availability`, która przechowuje informacje o dostępności terminu, ale sama w sobie nie zawiera żadnej logiki biznesowej: ```java class Availability {     private LocalDate date;     private boolean i