Mapowanie różnych typów dziedziczenia do Javy

Slides:



Advertisements
Podobne prezentacje
Projektowanie Aplikacji Komputerowych
Advertisements

C++ wykład 2 ( ) Klasy i obiekty.
Programowanie obiektowe
Projektowanie w cyklu życia oprogramowania
Projektowanie systemów informacyjnych
CORBA Łukasz Wnęk.
Sposoby obejścia dziedziczenia
Dziedziczenie wieloaspektowe
Tomasz Pieciukiewicz Rafał Hryniów
Mapowanie dziedziczenia z UML do Java
Programowanie Obiektowe w Javie (c.d.)
Nguyen Hung Son Uniwersytet Warszawski
Programowanie obiektowe w Javie
Wielodziedziczenie od środka Konrad Lipiński
25/08/ Języki programowania 1 Piotr Górczyński Obiekty i zdarzenia.
Obiektowe metody projektowania systemów
Dziedziczenie i jego rodzaje
Zasady zaliczenia Warunki uzyskania zaliczenia:
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Projektowanie systemów informacyjnych
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 8, Slajd 1 Projektowanie systemów informacyjnych Ewa Stemposz, Kazimierz Subieta.
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie i programowanie obiektowe II - Wykład II
Projekt zaliczeniowy z przedmiotu "Inżynieria oprogramowania"
Projektowanie - klasy i związki
Nadstruktura języka UML w wersji 2.2
Źródła: podręcznikopracował: A. Jędryczkowski.
MDA – Model Driven Architecture
Projektowanie obiektowe
Tworzenie aplikacji mobilnych
Zbiory Autor: Marta Ziarko.
WPROWADZENIE W ŚWIAT OBIEKTÓW
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
INTERFEJSY I KLASY WEWNĘTRZNE
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Projektowanie obiektowe
Programowanie obiektowe – język C++
Notacja w UML Klasy.
Programowanie obiektowe 2013/2014
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Modelowanie obiektowe Diagramy klas
Programowanie w języku C++
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Model obiektowy bazy danych
Diagram klas Diagramy klas służą do obrazowania statycznych aspektów projektowanych systemów jako: Projekt struktury logicznej baz danych Projekt składników.
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 8, Slajd 1 Projektowanie systemów informacyjnych Ewa Stemposz, Kazimierz Subieta.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Hibernate Podstawy.
Zakres Wzorce projektowe - kreacyjne -Factory Method -Abstract Factory.
Odwzorowania relacyjno-obiektowe Hibernate Podstawy.
Programowanie Zaawansowane
Dziedziczenie Wykład 7 Dziedziczenie sekwencyjne
E. Stemposz. UML i Analiza Obiektowa, Wykład 3, Slajd 1/18 Wykład 3 Model obiektowy (1) dr inż. Ewa Stemposz
MAS Rafał Hryniów. Agenda  Zasady  Referaty  Projekt  Kolosy.
Asocjacja,Kompozycja,Agregacja
InMoST: Innowacyjne metody wytwarzania oprogramowania – II edycja (c) Bartosz Walter Wprowadzenie do obiektowości (1) Plan szkolenia – Część.
Projektowanie systemów informacyjnych
Programowanie Obiektowe – Wykład 6
Wątki, programowanie współbieżne
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
(według:
Projektowanie systemów informacyjnych
(c) Krzysztof Barteczko 2014
Programowanie Obiektowe – Wykład 2
MAS – Referat 1 Mapowanie różnych typów dziedziczenia z UML do Javy
PGO Interfejsy Michail Mokkas.
PGO Dziedziczenie Michail Mokkas.
PGO Porównywanie obiektów
Zapis prezentacji:

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 Class Extends Abstract Interface Implements

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.

Overlapping 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 KomputerAMD class LaptopAMD

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

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ń

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 polega na jednoczesnym dziedziczeniu po wielu 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 class Laptop_WIFI

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

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{

Dziedziczenie wieloaspektowe

Dziedziczenie wieloaspektowe – obejście przez kompozycję wspomniec o tym ze pierwszy poziom to klasy abstrakcyjne

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

Realizajca dziedziczenia wieloaspektowego z wykorzystaniem dziedziczenia i kompozycji

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

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

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

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

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 jakisKomputer; // komputer jest laptopem jakisKomputer = laptop; // komputer jest tabletem jakisKomputer = tablet; interface IKomputer { } class Laptop implements IKomputer { class Tablet

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.