1 / 28

Mapowanie różnych typów dziedziczenia do Javy

Mapowanie różnych typów dziedziczenia do Javy. Bartosz Rybak Michał Malczewski. Plan prezentacji. Kilka podstawowych słów kluczowych Disjoint Ovelapping Incomplete Complete Wielodziedziczenie Dziedziczenie wieloaspektowe Dziedziczenie dynamiczne. Kilka podstawowych słów kluczowych.

jaimie
Télécharger la présentation

Mapowanie różnych typów dziedziczenia do Javy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mapowanie różnych typów dziedziczenia do Javy Bartosz Rybak Michał Malczewski

  2. Plan prezentacji... • Kilka podstawowych słów kluczowych • Disjoint • Ovelapping • Incomplete • Complete • Wielodziedziczenie • Dziedziczenie wieloaspektowe • Dziedziczenie dynamiczne

  3. Kilka podstawowych słów kluczowych • Class • Extends • Abstract • Interface • Implements

  4. 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. Disjoint – podział rozłączny

  5. Overlapping • Przecięcie zbiorów obiektów podklas nie musi być zbiorem pustym • Implementacja wymaga wprowadzenia kilku zmian do diagramu.

  6. Obejście overlappingu poprzez zastosowanie dodatkowej klasy class Komputer { } class Laptop extends Komputer { } class KomputerAMD extends Komputer { } class LaptopAMD extends Komputer { }

  7. Obejscie ovelappingu poprzez zastosowanie kompozycji class Komputer { Laptop laptop; KomputerAMD komputerAMD; } class Laptop { } class KomputerAMD { }

  8. Nie zdefiniowano wszystkich podklas. Jest podziałem domyślnym w trakcie implemenmtacji (np. w języku Java) mimo, że wtrakcie projektowania nie; implementacja nie wymaga więc żadnych dodatkowych działań Incomplete – podział niekompletny

  9. Zdefiniowano wszystkie podklasy Complete – podział kompletny

  10. 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 {  } Complete, Incomplete – implementacja

  11. polega na jednoczesnym dziedziczeniu po wielu wielu klasach nadrzędnych naraz Java nie obsługuje wielodziedziczenia Multi-inheritance - wielodziedziczenie

  12. class Komputer { } class Laptop extends Komputer { } class Komputer_WIFI extends Komputer { } class Laptop_WIFI extends Komputer { } Wielodziedziczenie – obejście przez zastosowanie dodatkowej podklasy

  13. class Komputer { Laptop laptop; Komputer_WIFI komputerWIFI; } class Laptop extends Komputer { } class Komputer_WIFI extends Komputer { } Wielodziedziczenie – obejście przez kompozycję

  14. class Komputer {} interface IPrzenosny {} interface IKomunikacjaBezprzewodowa {} class Laptop extends Komputer implements IPrzenosny { } class Komputer_WIFI extends Komputer implements IKomunikacjaBezprzewodowa{ } class Laptop_WIFI extends Komputer implements IPrzenosny, IKomunikacjaBezprzewodowa{ } Wielodziedziczenie – obejście przez wykorzystanie interfejsów

  15. Dziedziczenie wieloaspektowe

  16. Dziedziczenie wieloaspektowe – obejście przez kompozycję

  17. class Komputer { KomputerWPenymWieku wiek; KomputerJakoNarzedzie narzedzie; } abstractclass KomputerWPenymWieku { } abstractclass KomputerJakoNarzedzie{ } class UrzadzeniePasjansowe extends KomputerJakoNarzedzie { } class KomputerInformatyka extends KomputerJakoNarzedzie { } class KomputerPrezesa extends KomputerJakoNarzedzie { } class StaryKomputer extends KomputerWPenymWieku { } class NowyKomputer extends KomputerWPenymWieku { } Dziedziczenie wieloaspektowe – obejście przez kompozycję (2)

  18. Realizajca dziedziczenia wieloaspektowego z wykorzystaniem dziedziczenia i kompozycji

  19. class Komputer { KomputerWPenymWieku wiek; } abstractclass KomputerWPenymWieku { } abstractclass KomputerJakoNarzedzie extends Komputer{ } class UrzadzeniePasjansowe extends KomputerJakoNarzedzie { } class KomputerInformatyka extends KomputerJakoNarzedzie { } class KomputerPrezesa extends KomputerJakoNarzedzie { } class StaryKomputer extends KomputerWPenymWieku { } class NowyKomputer extends KomputerWPenymWieku { } Realizajca dziedziczenia wieloaspektowego z wykorzystaniem dziedziczenia i kompozycji cd.

  20. Dziedziczenie wieloaspektowe – obejście przez zagnieżdżoną specyfikację

  21. Dziedziczenie wieloaspektowe – obejście przez zagnieżdżoną specyfikację cd. abstractclass Komputer { } abstractclass KomputerMlodszyNizRok extends Komputer { } abstractclass KomputerStarszyNizRok extends Komputer { } class StaryKomputerInformatyka extends Komputer { } class MlodyKomputerInformatyka extends Komputer { } class ...itakdalej

  22. 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 Dynamic - dziedziczenie dynamiczne

  23. class Komputer { Laptop laptop; Stacjonarny stacjonarny; Tablet tablet; } class Laptop { } class Stacjonarny { } class Tablet { } Dziedziczenie dynamiczne – implementacja przez kompozycje

  24. Laptop laptop = new Laptop(); Tablet tablet = new Tablet(); IKomputer jakisKomputer; // komputer jest laptopem jakisKomputer = laptop; // komputer jest tabletem jakisKomputer = tablet; interface IKomputer { } class Laptop implements IKomputer { } class Tablet implements IKomputer { } Dziedziczenie dynamiczne – wykorzystanie interfejsu

  25. 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.

  26. 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.

  27. 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.

  28. 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.

More Related