Mapowanie rnych typw dziedziczenia do Javy Bartosz Rybak
Mapowanie różnych typów dziedziczenia do Javy Bartosz Rybak Michał Malczewski
Plan prezentacji. . . l l l l Kilka podstawowych słów kluczowych Disjoint Ovelapping Incomplete Complete Wielodziedziczenie Dziedziczenie wieloaspektowe Dziedziczenie dynamiczne
Kilka podstawowych słów kluczowych l l l Class Extends Abstract Interface Implements
Disjoint – podział rozłączny l l l Przecięcie zbiorów obiektów podklas jest zbiorem pustym. Domyślny podział. Implementacja podziału rozłącznego nie nastręcza żadnych problemów – jest to domyślny sposób.
Overlapping l l Przecięcie zbiorów obiektów podklas nie musi być zbiorem pustym Implementacja wymaga wprowadzenia kilku zmian do diagramu.
Obejście overlappingu poprzez zastosowanie dodatkowej klasy class Komputer { } class Laptop extends Komputer { } class Komputer. AMD extends Komputer { } class Laptop. AMD extends Komputer { }
Obejscie ovelappingu poprzez zastosowanie kompozycji class Komputer { Laptop laptop; Komputer. AMD komputer. AMD; } class Laptop { } class Komputer. AMD { }
Incomplete – podział niekompletny l l l Nie zdefiniowano wszystkich podklas. Jest podziałem domyślnym w trakcie implemenmtacji (np. w języku Java) mimo, że w trakcie projektowania nie; implementacja nie wymaga więc żadnych dodatkowych działań
Complete – podział kompletny Zdefiniowano wszystkie podklasy
Complete, Incomplete – implementacja Pojęcia Complete i Incomplete są wykorzystywane w modelu pojęciowym. Nie mają odniesienia w trakcie implementacji. Disjoint jest podziałem domyślnym. class Komputer { } class Przenosny extends Komputer { } class Stacjonarny extends Komputer { } class Tablet extends Komputer { }
Multi-inheritance wielodziedziczenie l l polega na jednoczesnym dziedziczeniu po wielu klasach nadrzędnych naraz Java nie obsługuje wielodziedziczenia
Wielodziedziczenie – obejście przez zastosowanie dodatkowej podklasy class Komputer { } class Laptop extends Komputer { } class Komputer_WIFI extends Komputer { } class Laptop_WIFI extends Komputer { }
Wielodziedziczenie – obejście przez kompozycję class Komputer { Laptop laptop; Komputer_WIFI komputer. WIFI; } class Laptop extends Komputer { } class Komputer_WIFI extends Komputer { }
Wielodziedziczenie – obejście przez wykorzystanie interfejsów class Komputer {} interface IPrzenosny {} interface IKomunikacja. Bezprzewodowa {} class Laptop extends Komputer implements IPrzenosny { } class Komputer_WIFI extends Komputer implements IKomunikacja. Bezprzewodowa { } class Laptop_WIFI extends Komputer implements IPrzenosny, IKomunikacja. Bezprzewodowa { }
Dziedziczenie wieloaspektowe
Dziedziczenie wieloaspektowe – obejście przez kompozycję
Dziedziczenie wieloaspektowe – obejście przez kompozycję (2) class Komputer { Komputer. WPenym. Wieku wiek; Komputer. Jako. Narzedzie narzedzie; } abstract class Komputer. WPenym. Wieku { } abstract class Komputer. Jako. Narzedzie{ } class Urzadzenie. Pasjansowe extends Komputer. Jako. Narzedzie { } class Komputer. Informatyka extends Komputer. Jako. Narzedzie { } class Komputer. Prezesa extends Komputer. Jako. Narzedzie { } class Stary. Komputer extends Komputer. WPenym. Wieku { } class Nowy. Komputer extends Komputer. WPenym. Wieku { }
Realizajca dziedziczenia wieloaspektowego z wykorzystaniem dziedziczenia i kompozycji
Realizajca dziedziczenia wieloaspektowego z wykorzystaniem dziedziczenia i kompozycji cd. class Komputer { Komputer. WPenym. Wieku wiek; } abstract class Komputer. WPenym. Wieku { } abstract class Komputer. Jako. Narzedzie extends Komputer{ } class Urzadzenie. Pasjansowe extends Komputer. Jako. Narzedzie { } class Komputer. Informatyka extends Komputer. Jako. Narzedzie { } class Komputer. Prezesa extends Komputer. Jako. Narzedzie { } class Stary. Komputer extends Komputer. WPenym. Wieku { } class Nowy. Komputer extends Komputer. WPenym. Wieku { }
Dziedziczenie wieloaspektowe – obejście przez zagnieżdżoną specyfikację
Dziedziczenie wieloaspektowe – obejście przez zagnieżdżoną specyfikację cd. abstract class Komputer { } abstract class Komputer. Mlodszy. Niz. Rok extends Komputer { } abstract class Komputer. Starszy. Niz. Rok extends Komputer { } class Stary. Komputer. Informatyka extends Komputer { } class Mlody. Komputer. Informatyka extends Komputer { } class. . . itakdalej
Dynamic - dziedziczenie dynamiczne l l obiekt nie musi być wystąpieniem jednej klasy przez cały okres swojego życia podstawowy sposób implementacji polega na tworzeniu nowego obiektu i przepisywaniu pól ze starego
Dziedziczenie dynamiczne – implementacja przez kompozycje class Komputer { Laptop laptop; Stacjonarny stacjonarny; Tablet tablet; } class Laptop { } class Stacjonarny { } class Tablet { }
Dziedziczenie dynamiczne – wykorzystanie interfejsu Laptop laptop = new Laptop(); Tablet tablet = new Tablet(); IKomputer jakis. Komputer; // komputer jest laptopem jakis. Komputer = laptop; // komputer jest tabletem jakis. Komputer = tablet; interface IKomputer { } class Laptop implements IKomputer { } class Tablet implements IKomputer { }
Zadanie 1 Firma Kafar zajmuje się wynajmem ochroniarzy. Potrzebny jest jej system który będzie przechowywał informacje o pracownikach administracji firmy oraz o ochroniarzach. Zaprojektuj diagram pojęciowy i implementacyjny odpowiedni do danego problemu, przy założeniu że pracownik administracji nie może być ochroniarzem.
Zadanie 2 Firma X zajmuje się przechowywaniem informacji o wyborcach w danym okręgu. Każdy wyborca może być jednocześnie kandydatem w tych samych wyborach. Zaprojektuj diagram pojęciowy i implementacyjny odpowiedni do tego problemu.
Zadanie 3 Firma X potrzebuje systemu który umożliwi jej przechowywanie informacji na temat osób zatrudnionych w firmie. Szefowi zależy bardzo na podziale osób ze względu na stanowiska oraz ze względu na typ ubezpieczenia jakim pracownicy są objęci. . Zaprojektuj diagram pojęciowy i implementacyjny odpowiedni do tego problemu.
Zadanie 4 Firma Kabut zwróciła się do ciebie z prośba stworzenia systemu do przechowywania danych o samochodach pracowników. Samochody mogą być prywatne lub służbowe. Każdy samochód służbowy może być po 3 latach odkupiony przez pracownika. Zaprojektuj diagram pojęciowy i implementacyjny odpowiedni do tego problemu.
- Slides: 28