Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałBorys Szczucki Został zmieniony 11 lat temu
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
Disjoint – podział rozłączny
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.
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 class LaptopAMD
7
Obejscie ovelappingu poprzez zastosowanie kompozycji
class Komputer { Laptop laptop; KomputerAMD komputerAMD; } class Laptop { class KomputerAMD {
8
Incomplete – podział niekompletny
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ń
9
Complete – podział kompletny
Zdefiniowano wszystkie podklasy
10
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 {
11
Multi-inheritance - wielodziedziczenie
polega na jednoczesnym dziedziczeniu po wielu wielu klasach nadrzędnych naraz Java nie obsługuje wielodziedziczenia
12
Wielodziedziczenie – obejście przez zastosowanie dodatkowej podklasy
class Komputer { } class Laptop extends Komputer { class Komputer_WIFI class Laptop_WIFI
13
Wielodziedziczenie – obejście przez kompozycję
class Komputer { Laptop laptop; Komputer_WIFI komputerWIFI; } class Laptop extends Komputer { class Komputer_WIFI wspomniec o tym, żeby implementacja zapewniala automatyczne kasowanie elementow z kompozycji
14
Wielodziedziczenie – obejście przez wykorzystanie interfejsów
class Komputer {} interface IPrzenosny {} interface IKomunikacjaBezprzewodowa {} class Laptop extends Komputer implements IPrzenosny { } class Komputer_WIFI implements IKomunikacjaBezprzewodowa{ class Laptop_WIFI implements IPrzenosny, IKomunikacjaBezprzewodowa{
15
Dziedziczenie wieloaspektowe
16
Dziedziczenie wieloaspektowe – obejście przez kompozycję
wspomniec o tym ze pierwszy poziom to klasy abstrakcyjne
17
Dziedziczenie wieloaspektowe – obejście przez kompozycję (2)
class Komputer { KomputerWPenymWieku wiek; KomputerJakoNarzedzie narzedzie; } abstract class KomputerWPenymWieku { abstract class KomputerJakoNarzedzie{ class UrzadzeniePasjansowe extends KomputerJakoNarzedzie { class KomputerInformatyka extends KomputerJakoNarzedzie { } class KomputerPrezesa class StaryKomputer extends KomputerWPenymWieku { class NowyKomputer
18
Realizajca dziedziczenia wieloaspektowego z wykorzystaniem dziedziczenia i kompozycji
19
Realizajca dziedziczenia wieloaspektowego z wykorzystaniem dziedziczenia i kompozycji cd.
class Komputer { KomputerWPenymWieku wiek; } abstract class KomputerWPenymWieku { abstract class KomputerJakoNarzedzie extends Komputer{ class UrzadzeniePasjansowe extends KomputerJakoNarzedzie { class KomputerInformatyka class KomputerPrezesa extends KomputerJakoNarzedzie { } class StaryKomputer extends KomputerWPenymWieku { class NowyKomputer
20
Dziedziczenie wieloaspektowe – obejście przez zagnieżdżoną specyfikację
21
Dziedziczenie wieloaspektowe – obejście przez zagnieżdżoną specyfikację cd.
abstract class Komputer { } abstract class KomputerMlodszyNizRok extends Komputer { abstract class KomputerStarszyNizRok class StaryKomputerInformatyka class MlodyKomputerInformatyka class ...itakdalej
22
Dynamic - dziedziczenie dynamiczne
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
23
Dziedziczenie dynamiczne – implementacja przez kompozycje
class Komputer { Laptop laptop; Stacjonarny stacjonarny; Tablet tablet; } class Laptop { class Stacjonarny { class Tablet {
24
Dziedziczenie dynamiczne – wykorzystanie interfejsu
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
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.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.