Metody obiektowe Bartosz Walter Szkolenie InMoST 21 lutego 2006.

Slides:



Advertisements
Podobne prezentacje
1 TREŚĆ UMOWY O PRACĘ : Umowa o pracę określa strony umowy, rodzaj umowy, datę jej zawarcia oraz warunki pracy i płacy, w szczególności: 1) rodzaj pracy,
Advertisements

BYĆ PRZEDSIĘBIORCZYM - nauka przez praktykę Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Anonimizacja danych adresowych pokrzywdzonego i świadka w procedurze wykroczeniowej w świetle ustawy z dnia 28 listopada 2014 r. o ochronie i pomocy dla.
Blok I: PODSTAWY TECHNIKI Lekcja 7: Charakterystyka pojęć: energia, praca, moc, sprawność, wydajność maszyn (1 godz.) 1. Energia mechaniczna 2. Praca 3.
Równowaga chemiczna - odwracalność reakcji chemicznych
1 Kobiety na rynku pracy. 2 Współczynnik aktywności zawodowej kobiet i mężczyzn w wieku w Polsce i w UE w 2013 roku.
Modele biznesowe. Podręcznik Model biznesowy to w pewnym sensie szkic strategii, która ma zostać wdrożona w ramach struktur, procesów i systemów organizacji.
OBOWIĄZKI INFORMACYJNE BENEFICJENTA Zintegrowane Inwestycje Terytorialne Aglomeracji Wałbrzyskiej.
Plan Czym się zajmiemy: 1.Bilans przepływów międzygałęziowych 2.Model Leontiefa.
Przewodnik po raportach rozliczeniowych w Condico Clearing Station (Rynek finansowy)
Czy wiesz, że?... INTERNET …TO JEST SPIS TREŚCI NIEBEZPIECZEŃSTWO SPOŁECZNOŚĆ INTERNETOWA DZIECKO W INTERNECIE ZAUFANE STRONY INTERNETOWE WIRUSY.
Zarządzanie Zmianą Sesja 3 Radzenie sobie z ludzkimi aspektami zmiany: opór.
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
PRAWO HANDLOWE Mateusz Kabut Katedra Prawnych Problemów Administracji i Zarządzania.
Pionierka ogół umiejętności związanych z budowaniem przez harcerzy.
Teoria gry organizacyjnej Każdy człowiek wciąż jest uczestnikiem wielu różnych gier. Teoria gier zajmuje się wyborami podejmowanymi przez ludzi w warunkach.
BYĆ PRZEDSIĘBIORCZYM - nauka przez praktykę Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Świat pełen energii.. Zasada zachowania energii mówi. że istnieje pewna wielkość zwana energią, nie ulęgająca zmianie podczas różnorodnych przemian, które.
Umowy Partnerskie w projektach zbiór najważniejszych składników Uwaga! Poniżej znajdują się jedynie praktyczne wskazówki dotyczące tworzenia umów. Dokładne.
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania 1 Metody optymalizacji - Energetyka 2015/2016 Metody programowania liniowego.
Olsztyn, 27 czerwca 2012 Propozycja zmian kryteriów merytorycznych dla Osi I Przedsiębiorczość RPO WiM w ramach Poddziałania
ZASTOSOWANIE FUNKCJI WYKŁADNICZEJ I LOGARYTMICZNEJ DO OPISU RUCHU DRGAJĄCEGO Agnieszka Wlocka Agnieszka Szota.
Zarządzanie jakością kształcenia. Poznajmy się Imię i nazwisko Skąd przyjechałaś/-eś? Podaj 3 informacje na swój temat: 2 prawdziwe i 1 fałszywą- informacje.
Niepewności pomiarowe. Pomiary fizyczne. Pomiar fizyczny polega na porównywaniu wielkości mierzonej z przyjętym wzorcem, czyli jednostką. Rodzaje pomiarów.
Ćwiczenia Zarządzanie Ryzykiem Renata Karkowska, ćwiczenia „Zarządzanie ryzykiem” 1.
ING BANK Faktoring –Jednostkom organizacyjnym Lasów Państwowych oferujemy faktoring krajowy z przejęciem ryzyka wypłacalności odbiorcy (bez regresu, pełny).
Połączenie towarzystw budownictwa społecznego Opracowano w BNW UMP 2008.
KAPITALIZACJA 1. Określenie procentu Procent jest to setna część z całości. 1 % = 0,01 z całości Aby zamienić liczbę na procent należy tą liczbę pomnożyć.
Mikroekonomia dr hab. Maciej Jasiński, prof. WSB Wicekanclerz, pokój 134A Semestr zimowy: 15 godzin wykładu Semestr letni: 15.
EWALUACJA PROJEKTU WSPÓŁFINANSOWANEGO ZE ŚRODKÓW UNII EUROPEJSKIE J „Wyrównywanie dysproporcji w dostępie do przedszkoli dzieci z terenów wiejskich, w.
Strona postępowania jako źródło dowodowe Prof. dr hab. Henryk Dzwonkowski Kierownik Katedry Prawa Finansowego Uniwersytet Łódzki.
Bezpieczeństwo i zdrowie w pracy dotyczy każdego. Jest dobre dla ciebie. Dobre dla firmy. Partnerstwo dla prewencji Co badanie ESENER może nam powiedzieć.
 Koszty uzyskania przychodów to instytucja podatków dochodowych występująca w art. 15 ust. 1. ustawy o podatku dochodowym od osób prawnych i art. 22 ustawy.
EWALUACJA JAKO ISTOTNY ELEMENT PROJEKTÓW SYSTEMOWYCH Sonia Rzeczkowska.
Prawdy oczywiste Kiedy zarejestrować działalność? - Księgowość bez tajemnic! INFOLINIA: |
Zmienne losowe Zmienne losowe oznacza się dużymi literami alfabetu łacińskiego, na przykład X, Y, Z. Natomiast wartości jakie one przyjmują odpowiednio.
Kontrakty terminowe na indeks mWIG40 Prezentacja dla inwestorów Giełda Papierów Wartościowych w Warszawie S.A. Dział Notowań GPW kwiecień 2005.
Jak sobie z nim radzić ?.
Analiza tendencji centralnej „Człowiek – najlepsza inwestycja”
W YBRANE ZAGADNIENIA POSTĘPOWANIA CYWILNEGO W SPRAWACH O OCHRONĘ WŁASNOŚCI PRZEMYSŁOWEJ Prof. dr hab. Feliks Zedler Konferencja „Rynek leków a ochrona.
Porównywarki cen leków w Polsce i na świecie. Porównywarki w Polsce.
1 Organizacje a kontrakt psychologiczny We współczesnym świecie człowiek otoczony jest szeregiem kontraktowych zobowiązań. To pewien rodzaj powiązań, zależności,
Opodatkowanie spółek Podziały Spółek. Podziały spółek Rodzaje podziałów wg KSH Przewidziane są cztery sposoby podziału: 1) podział przez przejęcie, który.
KOSZTY W UJĘCIU ZARZĄDCZYM. POJĘCIE KOSZTU Koszt stanowi wyrażone w pieniądzu celowe zużycie majątku trwałego i obrotowego, usług obcych, nakładów pracy.
„Gdański model aktywizacji społeczności lokalnych” Gdańsk, 27 kwietnia 2009.
Model warstwowy OSI Model OSI (Open Systems Interconnection) opisuje sposób przepływu informacji między aplikacjami programowymi w jednej stacji sieciowej.
Budżet rodzinny Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Instalacja nienadzorowana windows xp Jakub klafta.
Optymalna wielkość produkcji przedsiębiorstwa działającego w doskonałej konkurencji (analiza krótkookresowa) Przypomnijmy założenia modelu doskonałej.
Usługa PUE-ZUS (Platforma Usług Elektronicznych Zakładu Ubezpieczeń Społecznych) Michał Dobrzyński, Departament Informatyki MRPiPS
Definiowanie i planowanie zadań typu P 1.  Planowanie zadań typu P  Zadania typu P to zadania unikalne służące zwykle dokonaniu jednorazowej, konkretnej.
Zespół trenerów FAOW – Janina Jaszczur, Inga Kawałek, Ryszard Kamiński, Ryszard Zarudzki Zasady kontroli Wnioskodawców w PPLeader+
 Co to jest bank? Co to jest bank?  Lokata Lokata  Super konto GRAFITTI Super konto GRAFITTI  Karta kredytowa Karta kredytowa  Karta bankomatowa.
Zasada równości szans kobiet i mężczyzn (w oparciu o standard minimum) Olsztyn, 6 czerwca 2016r.
1 Definiowanie i planowanie zadań budżetowych typu B.
Renata Maciaszczyk Kamila Kutarba. Teoria gier a ekonomia: problem duopolu  Dupol- stan w którym dwaj producenci kontrolują łącznie cały rynek jakiegoś.
Obliczanie procentu danej wielkości Radosław Hołówko.
Jak tworzymy katalog alfabetyczny? Oprac.Regina Lewańska.
Budżetowanie kapitałowe cz. III. NIEPEWNOŚĆ senesu lago NIEPEWNOŚĆ NIEMIERZALNA senesu strice RYZYKO (niepewność mierzalna)
Test analizy wariancji dla wielu średnich – klasyfikacja pojedyncza
Schematy blokowe.
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
ORGANIZACJA.
Budowa, typologia, funkcjonalność
Git - system kontroli wersji
Języki programowania.
Podstawy informatyki Zygfryd Głowacz.
Strukturalne wzorce projektowe
Zapis prezentacji:

Metody obiektowe Bartosz Walter Szkolenie InMoST 21 lutego 2006

Różne aspekty obiektowości Hermetyzacja Polimorfizm Dziedziczenie Abstrakcja Elastyczność Modularyzacja Powtórne użycie Odpowiedzialność Łatwość modyfikacji

Obiekt Definicja 1 (tradycyjna) Obiekt reprezentuje jednostkę lub stan obecny w świecie rzeczywistym: samochód, człowieka, wypożyczenie książki; Obiekt przechowuje dane i definiuje sposób operowania na tych danych. Definicja 2 (obiektowa) Obiekt jest jednostką odpowiedzialną za pewien obszar modelu. Posiada wszelkie środki do podjęcia tej odpowiedzialności.

Przykład: Wykładowca na konferencji Problem (Shalloway&Trott 2004) Wykładowca prowadzi wykład na konferencji. Po jego zakończeniu słuchacze zamierzają wysłuchać kolejnych prezentacji, jednak nie wiedzą gdzie one się odbywają. Każdy słuchacz może uczestniczyć w innym wykładzie. Zadaniem wykładowcy jest przekazanie informacji każdemu ze słuchaczy, gdzie odbywa się interesujący go wykład. Słuchacze dzielą się na różne grupy, które chcą przed udaniem się na kolejny wykład załatwić inne sprawy.

Przykłąd: Wykładowca na konferencji (cd.) Rozwiązanie 1 (strukturalne) 1.Utwórz listę uczestników wykładu 2.Dla każdego uczestnika z listy: a)znajdź kolejny wykład, w którym chce on uczestniczyć b)znajdź jego lokalizację c)przekaż uczestnikowi wskazówki, jak tam się dostać Potrzebne procedury 1.Utworzenie listy uczestników 2.Pobranie planu każdego uczestnika 3.Znalezienie drogi do kolejnego miejsca 4.Główna procedura koordynująca pozostałe

Przykład: Wykładowca na konferencji (cd.) Rozwiązanie 2 (obiektowe)  Udostępnij dla wszystkich słuchaczy plan budynku  Pozwól uczestnikom samodzielnie znaleźć kolejny wykład Algorytm wykładowcy 1.Utwórz listę uczestników 2.Dla każdego uczestnika a)Poproś go o samodzielne znalezienie drogi Algorytm uczestnika 1.Znajdź lokalizację kolejnego wykładu 2.Znajdź drogę do tej lokalizacji 3.Idź

Przykład: Wykładowca na konferencji (cd.)

Odpowiedzialność Wilhelm ( )

Odpowiedzialność Ockham Wilhelm Ockham ( ) Non sunt multiplicanda entia sine necessitate Bytów nie należy mnożyć ponad potrzebę

Błędy w przypisaniu odpowiedzialności Za duża  obiekty pełnią jednocześnie wiele ról, posiadają zbyt wiele obszarów, za które są odpowiedzialne  występują konflikty w stosowaniu dziedziczenia  wysoki poziom powiązań pomiędzy obiektami  utrudnione testowanie Za mała  dużo małych obiektów o nieokreślonej odpowiedzialności  zbytnia abstrakcja  rozmyta odpowiedzialność

Abstrakcja Abstrakcja  Zdolność programu do ignorowania niektórych aspektów informacji którymi manipuluje, i skupienia się na najważniejszych.  Każdy obiekt w systemie jest modelem abstrakcyjnego elementu, który może wykonywać pewne czynności, zmieniać swój stan i informować o tym, a jednocześnie także komunikować się z innymi obiektami w systemie bez ujawniania w jaki sposób te cechy zostały zaimplementowane.

Polimorfizm Polimorfizm  poly (gr. wiele ) morph (gr. postać ) – jednoczesne istnienie wielu postaci tej samej metody i możliwość wyboru jednej z tych postaci  możliwość traktowania konkretnego obiektu jako ogólnej, abstrakcyjnej jednostki posiadającej pewną odpowiedzialność (interfejs), ale nie ujawniającej swojej implementacji Polimorfizm w Javie  Klasy abstrakcyjne i ich klasy potomne (polimorfizm "pionowy")  Interfejsy i ich implementacje (polimorfizm "poziomy")  Typy generyczne w Java 5 SE (polimorfizm parametryczny)

Interfejsy mojTelefon. call () Interfejs: widoczna część klasy, która definiuje jej odpowiedzialność Zasada 1 Stosowanie interfejsów poprawia abstrakcję i hermetyzację.

Wielokrotne interfejsy Phone Phone mojTelefon = new WirePhone(); mojTelefon.call();

Wielokrotne interfejsy Phone Phone mojTelefon = new MobilePhone(); mojTelefon.call();

Wielokrotne interfejsy Clock Clock mojZegar = new Watch() ; mojZegar.call();

Wielokrotne interfejsy Clock Clock mojZegar = new MobilePhone(); mojZegar.call();

Dziedziczenie a interfejsy  WirePhone i MobilePhone są typu Phone. Oba telefony mogą zadzwonić i odebrać rozmowę, ale... ...zachowują się zupełnie inaczej.  WallClock jest rodzajem Watch. Zachowuje się i wygląda niemal identycznie jak Watch.  WallClock dziedziczy typ i implementację.

Dziedziczenie klas a implementowanie interfejsów Dziedziczenie klas: przekazuje typ i implementację Implementacja interfejów: przekazuje tylko typ

Dziedziczenie a kompozycja Zasada 2 Jeżeli to możliwe, należy preferować kompozycję nad dziedziczenie. DziedziczenieKompozycja  nie można zmodyfikować relacji  zapobiega wyjątkom NullPointerException  przekazuje podklasom zarówno typ (interfejs) jak i implementację  ujawnia szczegóły implementacji nadklasy podklasom  można swobodnie modyfikować relację  nie ma pewności, czy związany relacją obiekt istnieje  każdy obiekt zna tylko typ (interfejs) drugiego obiektu

Hermetyzacja Definicja 2 (szersza) Hermetyzacja dotyczy ukrywania wszelkich decyzji projektowych, które mogą ulec zmianie: typu klasy, jej implementacji, zachowania i danych Zasada 3 Należy identyfikować zakres zmienności i hermetyzować go w postaci klasy, metody polimorficznej etc. Definicja 1 (popularna) Hermetyzacja dotyczy ukrywania dostępu z zewnątrz do danych

Hermetyzacja typu Przykład Collection zarządza Attendees, ignorując podział na klasy Student i Professional W ten sposób klasa Attendee chroni swoje typy pochodne przed dostępem z zewnątrz.

Hermetyzacja obiektu Przykład tylko Collection odwołuje się do Attendees; Lecturer nic nie wie o ich istnieniu i sposobie odwoływania się do nich

Hermetyzacja danych Przykład  Attendees nie powinni zmieniać swoich nazwisk  Tworzenie nieważnych obiektów powinno być zabronione. Attendee uczestnik = new Attendee(); // nowy "pusty" uczestnik uczestnik.setName(”Smith”); // a teraz zmieniamy jego nazwisko

Hermetyzacja danych Attendee uczestnik = new Attendee(”Smith”); // ten uczestnik to Smith Przykład  Attendees nie powinni zmieniać swoich nazwisk  Tworzenie nieważnych obiektów powinno być wprost zabronione.

Hermetyzacja kolekcji Gdzie tkwi błąd? Collection uczestnicy = wykladowca.getAttendees(); uczetnicy.add(new Attendee(”George Bush”)); // możliwa modyfikacja uczestnicy.remove(new Attendee(”Tony Blair”)); // możliwa modyfikacja

Hermetyzacja kolekcji Collection uczestnicy = wykladowca.getAttendees(); uczestnicy.add(new Attendee(”George Bush”)); // wyjątek, nie można // modyfikować wykladowca.add(new Attendee(”George Bush”)); // OK

Spójność obiektu Spójność Spójność obiektu lub klasy określa stopień powiązań pomiędzy elementami (metodami, polami) tej klasy. Spójna klasa to taka, której metody są blisko ze sobą związane, a zatem odpowiedzialność klasy jest jasno określona. Brak spójności oznacza, że klasa wykonuje różne, niezwiązane ze sobą zadania, a zatem prawdopodobnie powinna być podzielona. Zasada 4 Dobrze zaprojektowana klasa jest spójna, ponieważ hermetyzuje potencjalne zmiany w obszarze, za który odpowiada.

Powiązania Powiązanie Powiązanie między dwoma klasami/obiektami opisuje zależność pomiędzy nimi. Klasa A jest powiązana z klasą B, jeżeli A musi posiadać pewną wiedzę o B:  jako jej pole składowe,  jako implementacja interfejsu,  jako podklasa,  jako parametr, typ metody albo wyjątek. Zasada 5 Należy utrzymywać luźne powiązania pomiędzy obiektami, tak aby wiedziały o sobie jak najmniej. Nadmierne powiązania między obiektami ograniczają możliwość ich modyfikacji.

Karta CRC ( Class-Responsibility-Collaboration ) Klasa: Nazwa klasy Odpowiedzialność: Za jaki obszar klasa odpowiada? Współpraca: Z jakimi innymi klasami współpracuje?

Karta CRC: przykład Klasa: Wykładowca Odpowiedzialność:  Udostępnienie planu budynku  Pozwolenie uczestnikom wykładu na znalezienie kolejnego wykładu Wspólpraca:  Uczestnicy: umożliwienie im odczytu planu budynku i znalezienie drogi na kolejny wykład

Przykład: bank Bank zarządza rachunkami klientów. Do rachunku jest przypisane imię, nazwisko oraz numer rachunku. Istnieją następujące typy rachunków:  Konto student: oprocentowanie stałe 3 %, okres kapitalizacji 1 miesiąc, opłata 3 PLN/miesiąc  Konto standard: oprocentowanie do 1000 PLN 2 %, powyżej 4%, okres kapitalizacji 1 miesiąc, opłata 7 PLN/miesiąc  Konto super: oprocentowanie do 1000 PLN 1.5%, do 5000 PLN 4%, powyżej 5%, okres kapitalizacji 1 dzień, opłata 12 PLN/miesiąc Z typem rachunku związane jest oprocentowanie, które określa stopę procentową i regułę kapitalizacji (wysokość oprocentowania, które może się zmieniać w zależności od wysokości salda na rachunku, oraz okres kapitalizacji). Klient może zmieniać typ rachunku bez potrzeby tworzenia nowego rachunku. Wiąże się to z opłatą wynikającą z danego typu rachunku.

Przykład: bank Każda operacja wykonywana na rachunku (założenie rachunku, zamknięcie rachunku, wpłata, przelew, wypłata, kapitalizacja odsetek) jest odnotowywana w historii rachunku. Operacje z punktu widzenia rachunku różnią się kodem operacji uwidocznionym na wyciągu oraz opisem.

Przykład: bank Zarządzanie bankiem wymaga wykonywania różnorodnych raportów na podstawie atrybutów (wysokości sald, oprocentowania, naliczanych odsetek) rachunków, kredytów i lokat prowadzonych w banku. Należy zaprojektować system, który pozwoli, dla wszystkich rachunków, lokat, kredytów prowadzonych w banku, realizować w jednolity sposób raportowanie. Należy przy tym uwzględnić następujące wymagania:  łatwa realizacja nowych raportów  zabezpieczenie niektórych instancji produktów (u niektórych klientów banku) przed ujawnieniem w raporcie  wielowątkowość (wiele raportów może być realizowanych naraz)

Q&A