(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński

Wielkość: px
Rozpocząć pokaz od strony:

Download "(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński"

Transkrypt

1 (wybrane) Wzorce projektowe Programowanie Obiektowe Mateusz Cicheński

2 Kreacyjne Fabryka abstrakcyjna (Abstract Factory) Budowniczy (Builder) Metoda wytwórcza (Factory Method) Prototyp (Prototype) Singleton Strukturalne Adapter (Wrapper) Kompozyt (Composite) Dekorator (Decorator) Fasada (Facade) Pełnomocnik (Proxy) Pyłek (Flyweight) Czynnościowe (behawioralne) Mediator Pamiątka (Memento) Polecenie (Command) Strategia (Strategy) Plan zajęć

3 Fabryka abstrakcyjna Wzorce kreacyjne

4 <<interface> AbstractFactory AnotherFactory +createobjecta() : ObjectA +createobjectb() : ObjectB +createobjecta() : ObjectA +createobjectb() : ObjectB ObjectA ConcreteFactory +createobjecta() : ObjectA +createobjectb() : ObjectB Fabryka abstrakcyjna Wzorce kreacyjne ObjectB AbstractFactory factory = new ConcreteFactory(); ObjectA a = factory.createobjecta(); factory = new AnotherFactory(); ObjectB b = factory.createobjectb();

5 3 2 1 Budowniczy Wzorce kreacyjne

6 <<interface> Builder +buildpart() Director -builder: Builder +construct() ConcreteBuilder <create> Product +buildpart() +getproduct() : Product void construct() { builder.buildpart(); builder.buildpart(); } Budowniczy Wzorce kreacyjne Builder builder = new ConcreteBuilder(); Director = new Director(builder); Director.construct(); Product product = builder.getproduct();

7 Metoda wytwórcza Wzorce kreacyjne

8 Creator <create> Product +factorymethod() : Product SpecialCreator <create> SpecialProduct +factorymethod() : Product Metoda wytwórcza Wzorce kreacyjne Creator creator = new ConcreteCreator(); Product product = creator.factorymethod(); creator = new SpecialCreator(); Product product = creator.factorymethod();

9 Prototyp Wzorce kreacyjne

10 <<interface>> Prototype +clone() : Prototype Prototype *prototype = new ConcretePrototype(); ConcretePrototype *clone = dynamic_cast<concreteprototype*> prototype.clone(); clone->dosomething(); ConcretePrototype +clone() : Prototype +dosomething() W C++ metoda clone() powinna zwracać wskaźnik na obiekt Prototype. Rzutowanie można wykonać przy pomocy dynamic_cast<>. Prototype prototype = new ConcretePrototype(); Prototype clone = prototype.clone() as ConcretePrototype; clone.dosomething(); Prototyp Wzorce kreacyjne

11 Singleton Wzorce kreacyjne

12 Singleton -instance : Singleton; +getinstance() : Singleton +dosomething() W C++ metoda getinstance() powinna zwracać wskaźnik na obiekt Singleton, a zmienna instance powinna być wskaźnikiem na obiekt Singleton. Singleton singleton = Singleton.getInstance(); singleton.dosomething(); Singleton Wzorce kreacyjne

13 Fabryka abstrakcyjna konstrukcja obiektów podobnego typu (np. różnych typów pojazdów) Budowniczy konstrukcja skomplikowanych elementów przy pomocy drobnych kroków Metoda wytwórcza konstrukcja nowego elementu (bez wywołania konstruktora explicite) Prototyp możliwość kopiowania obiektów (np. w połączeniu ze wzorcem Pamiątki) Singleton dostęp do bazy danych, utrzymanie pojedynczego połączenia z bazą Przykłady użycia Wzorce kreacyjne

14 Adapter (Wrapper) Wzorce strukturalne

15 Adaptee +methodb() Adaptor #adaptee : Adaptee +methoda() void methoda() { adaptee.methodb(); } Adaptee adaptee; Adaptor adaptor = = new Adaptor(adaptee); adaptor.methoda(); Adapter (Wrapper) Wzorce strukturalne

16 Podwyżka dla działu PR Kompozyt Wzorce strukturalne

17 0..* <<interface>> Component Leaf +operation() +operation() 1 Composite +operation() +add(item : Component) +removeat(index : int) +getchildat(index : int) Kompozyt Wzorce strukturalne Composite composite = new Composite(); composite.add(new Leaf()); composite.add(new Leaf()); composite.operation();

18 Dekorator Wzorce strukturalne

19 <<interface>> Component ConcreteComponent +operation() +operation() Decorator ConcreteDecorator -component : Component +operation() +operation() +newoperation() Dekorator Wzorce strukturalne

20 Fasada Wzorce strukturalne

21 Facade +operation() PoorAPIClass +xyz() +mjuyhn() void operation() { xyz(); mjuyhn(); } //no need to include PoorAPIClass Facade facade = new Facade(); facade.operation(); Fasada Wzorce strukturalne

22 Pełnomocnik Wzorce strukturalne

23 <<interface>> Object +simple() +complex() RealObject +simple() +complex() ProxyObject delegate +simple() +complex() Object object = new ProxyObject(); object.simple(); object.complex(); Pełnomocnik Wzorce strukturalne

24 Pyłek Wzorce strukturalne

25 FlyweightFactory -objects[] +getobject(id) : FlyweightObject <create> FlyweightObject FlyweightFactory::getObject(ID) { if (objects.contains(id) == NULL) { FlyweightObject obj = new FlyweightObject(ID); FlyweightObject objects.add(id, obj); } return objects[id]; } Pyłek Wzorce strukturalne FlyweightFactory factory = new FlyweightFactory(); factory.getobject(15); factory.getobject(17); factory.getobject(15);

26 Adapter utworzenie interfejsu zgodnego z naszą aplikacją, który wykorzystuje możliwości dostarczane przez inny interfejs (niezgodny z naszą aplikacją) Kompozyt tworzenie drzewa obiektów, możliwość wykonywania operacji grupowych na takim drzewie Dekorator możliwość rozszerzania funkcjonalności danej klasy w trakcie działania aplikacji (w przeciwieństwie do dziedziczenia, które to umożliwia na etapie kompilacji) Fasada utworzenie prostego interfejsu ukrywającego inne, bardziej skomplikowane interfejsy Pełnomocnik odkładanie utworzenia skomplikowanego obiektu o dużym zapotrzebowaniu zasobów do czasu kiedy faktycznie taki obiekt musi zostać utworzony Pyłek redukcja zużycia zasobów przez zwracanie tego samego obiektu o wskazanych parametrach (zamiast tworzenia za każdym razem kopii o tych samych parametrach), np. glify typograficzne Przykłady użycia Wzorce strukturalne

27 Mediator Wzorce behawioralne

28 <<interface>> Mediator * <<interface>> Colleague +handlenotify() +notify() ConcreteMediator ConcreteColleague +handlenotify() void handlenotify() { //perform specific action //on other Colleague } Mediator Wzorce behawioralne ConcreteMediator mediator = new ConcreteMediator(); Colleague colleague = new ConcreteCollegue(); mediator.add(colleague); colleague.notify();

29 Pamiątka Wzorce behawioralne

30 Memento Caretaker -state +setstate() +getstate() <create> Originator -state +operation(); +creatememento() : Memento +restore(memento : Memento) Originator originator = new Originator(); Memento previousstate = originator.creatememento(); originator.operation(); originator.restore(previousstate); Pamiątka Wzorce behawioralne

31 Kochanie, wynieś proszę śmieci! Synu, wynieś śmieci! Zawsze ja Polecenie Wzorce behawioralne

32 <<interface>> Command Invoker +execute() ConcreteCommand Receiver +execute() +action() void execute() { receiver.action(); } Polecenie Wzorce behawioralne

33 Strategia Wzorce behawioralne

34 <<interface>> Strategy Context +algorithm() +executestrategy() ConcreteStrategy + algorithm() ConcreteStrategy strategy = new ConcreteStrategy(); Context context = new Context(strategy); context.executestrategy(); Strategia Wzorce behawioralne

35 Mediator zależność pomiędzy obiektami jest zdefiniowana w mediatorze, obiekty nie posiadają bezpośrednio referencji do obiektów, z którymi wymieniają dane Pamiątka zapisywanie aktualnego stanu obiektu, funkcjonalność cofnij Polecenie zdefiniowanie funkcjonalności jako polecenia, które może być przypisane pod kilka elementów GUI Strategia w zależności od kontekstu zaaplikowanie odpowiedniej metody/algorytmu do danych (np. walidacja pól zawierających różne typy danych jak daty, liczby, ciągi znaków) Przykłady użycia Wzorce behawioralne

(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński

(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński (wybrane) Wzorce projektowe Programowanie Obiektowe Mateusz Cicheński Kreacyjne Fabryka abstrakcyjna (Abstract Factory) Budowniczy (Builder) Metoda wytwórcza (Factory Method) Prototyp (Prototype) Singleton

Bardziej szczegółowo

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo Wzorce projektowe dr inż. Marcin Pietroo Wzorce projektowe Wzorzec projektowy (ang. design pattern) w inżynierii oprogramowania, rozwiązanie często pojawiających się, powtarzalnych problemów projektowych.

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

Zaawansowane programowanie w C++ (PCP) Zaawansowane programowanie w C++ (PCP) Wykład 4 - wzorce projektowe. dr inż. Robert Nowak - p. 1/18 Powtórzenie klasy autonomiczne tworzenie nowych typów: dziedziczenie i agregacja dziedziczenie: przedefiniowywanie

Bardziej szczegółowo

Testowanie oprogramowania Wzorce projektowe

Testowanie oprogramowania Wzorce projektowe Testowanie oprogramowania Wzorce projektowe 1/66 Testowanie oprogramowania Wzorce projektowe dr inż. Grzegorz Michalski 17 listopada 2015 Testowanie oprogramowania Wzorce projektowe 2/66 Plan wykładu Agenda

Bardziej szczegółowo

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób?

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób? Problemy projektowania obiektowego Czy podobne problemy można rozwiązywac w podobny sposób? Czy te problemy można przedstawić w abstrakcyjny sposób, tak aby były pomocne w tworzeniu rozwiązań w różnych

Bardziej szczegółowo

Technologia Programowania 2016/2017 Wykład 5

Technologia Programowania 2016/2017 Wykład 5 Technologia Programowania 2016/2017 Wykład 5 Wzorce GoF Jakub Lemiesz Wzorce GoF Kreacyjne Builder Singleton Simple Factory Factory Method Abstract Factory Prototype Strukturalne Adapter Decorator Proxy

Bardziej szczegółowo

Technologia Programowania 2016/2017 Wykład 4

Technologia Programowania 2016/2017 Wykład 4 Technologia Programowania 2016/2017 Wykład 4 Wzorce projektowe GoF Jakub Lemiesz Wzorce GRASP a wzorce GoF Znamy 9 wzorców GRASP ogólne zasady Na GRASP opierają się klasyczne wzorce GoF Na wzorcach GoF

Bardziej szczegółowo

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 2

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 2 Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 2 Zofia Kruczkiewicz 1 Diagramy maszyn stanowych, wzorce projektowe 1. Modelowanie aktywności za pomocą diagramów sekwencji i aktywności porównanie

Bardziej szczegółowo

Analiza i projektowanie obiektowe 2016/2017. Wykład 11: Zaawansowane wzorce projektowe (1)

Analiza i projektowanie obiektowe 2016/2017. Wykład 11: Zaawansowane wzorce projektowe (1) Analiza i projektowanie obiektowe 2016/2017 Wykład 11: Zaawansowane wzorce projektowe (1) Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Wzorce projektowe

Bardziej szczegółowo

Wzorce oprogramowania Gof. zastosowane w modelu obiektowym

Wzorce oprogramowania Gof. zastosowane w modelu obiektowym Wzorce oprogramowania Gof (Gang of Four skrót odnoszący się do autorów ksiązki: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software)

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 11 - przegląd wybranych wzorców mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 24 maja 2017 1 / 38 mgr inż. Krzysztof Szwarc Programowanie obiektowe Wzorce

Bardziej szczegółowo

Wzorce projektowe Wykład 7 część 1

Wzorce projektowe Wykład 7 część 1 Wzorce projektowe Wykład 7 Zofia Kruczkiewicz 1 Wzorce projektowe 1. Identyfikacja wzorców projektowych 2. Przegląd wzorców projektowych 2.1. Wzorce kreacyjne 2.2. Wzorce strukturalne 2.3. Wzorce zachowania

Bardziej szczegółowo

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015 Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015 1 Wzorce podstawowe 1.1 Interface vs Abstract class class InterfaceAbstractClass

Bardziej szczegółowo

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz Wzorce projektowe ArrayList DataGridView Aplikacja i zdarzenia Paweł Chodkiewicz Wzorzec uniwersalne rozwiązanie często powtarzających się problemów. Wzorzec opisuje problem, który powtarza się wielokrotnie

Bardziej szczegółowo

WZORCE PROJEKTOWE. Software engineering has accepted as its charter How to program if you cannot. E. Djikstra

WZORCE PROJEKTOWE. Software engineering has accepted as its charter How to program if you cannot. E. Djikstra WZORCE PROJEKTOWE Software engineering has accepted as its charter How to program if you cannot. E. Djikstra 1 * Wykład 1 Wzorzec projektowy opis komunikujących się obiektów i klas dostosowanych do rozwiązania

Bardziej szczegółowo

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017 Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017 1 Wzorce podstawowe 1.1 Interface vs Abstract class class InterfaceAbstractClass

Bardziej szczegółowo

Projektowanie oprogramowania: wzorce architektoniczne i projektowe

Projektowanie oprogramowania: wzorce architektoniczne i projektowe Projektowanie oprogramowania: wzorce architektoniczne i projektowe Ogólne zasady projektowania Nie staraj się zadziwić innych. Rzeczy oczywiste rób w sposób oczywisty. Nie rozmawiaj z nieznajomym. Projekt

Bardziej szczegółowo

Projektowanie obiektowe oprogramowania Wykład 7 wzorce czynnościowe (2) Wiktor Zychla 2018

Projektowanie obiektowe oprogramowania Wykład 7 wzorce czynnościowe (2) Wiktor Zychla 2018 Projektowanie obiektowe oprogramowania Wykład 7 wzorce czynnościowe (2) Wiktor Zychla 2018 1 Mediator Motto: Koordynator współpracy ściśle określonej grupy obiektów dzięki niemu one nie odwołują się do

Bardziej szczegółowo

WZORCE PROJEKTOWE (I) (DESIGN PATTERNS)

WZORCE PROJEKTOWE (I) (DESIGN PATTERNS) WZORCE PROJEKTOWE (I) (DESIGN PATTERNS) Maciej Patan Motywacje W wielu dziedzinach nowoczesnej inżynierii napotykamy na następujące zagadnienia: Czy typowe zadania i problemy można rozwiązywać w powtarzalny

Bardziej szczegółowo

Wprowadzenie do programowania aplikacji mobilnych

Wprowadzenie do programowania aplikacji mobilnych Wprowadzenie do programowania aplikacji mobilnych dr Przemysław Juszczuk dr Przemysław Juszczuk Trochę historii Idea wzorców projektowych wywodzi się jeszcze z wczesnych lat osiemdziesiątych ubiegłego

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe

Projektowanie obiektowe Wzorce projektowe Projektowanie obiektowe Wzorce projektowe Gang of Four Kreacyjne wzorce projektowe (wzorce konstrukcyjne) 1 Roadmap Memento Factory Method Abstract Factory Prototype Builder 2 Wzorce konstrukcyjne wzorce

Bardziej szczegółowo

Wzorce oprogramowania Gof (cd) zastosowane w modelu obiektowym

Wzorce oprogramowania Gof (cd) zastosowane w modelu obiektowym Wzorce oprogramowania Gof (cd) (Gang of Four skrót odnoszący się do autorów ksiązki: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software)

Bardziej szczegółowo

Wzorce projektowe w aplikacjach webowych www.lukasz-socha.pl

Wzorce projektowe w aplikacjach webowych www.lukasz-socha.pl Spis treści Wstęp...3 1. Singleton...4 1.2 Przykładowa implementacja...4 1.3 Przykład z życia wzięty...5 1.4 Zalety i wady...7 1.5 Zastosowanie...7 2. Strategy...8 2.2 Przykładowa implementacja...8 2.3

Bardziej szczegółowo

Programowanie w języku Java WYKŁAD

Programowanie w języku Java WYKŁAD Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 24.02.2014 WYKŁAD 1 Wzorce projektowe Znaczenie

Bardziej szczegółowo

Builder (budowniczy) Cel: Przykład:

Builder (budowniczy) Cel: Przykład: 1/8 Builder (budowniczy) Cel: Oddzielenie konstruowania złożonego obiektu od jego reprezentacji, tak aby ten sam proces konstrukcji mógł tworzyć różne reprezentacje. Przykład: 2/8 abstract class TableBuilder

Bardziej szczegółowo

Decorator (dekorator)

Decorator (dekorator) 1/10 Decorator (dekorator) Cel: Dołącza dynamicznie nową funkcjonalność do obiektu elastyczna alternatywa dziedziczenia. Przykład: interface iplik { void zapisz(string tekst); String odczytaj(); class

Bardziej szczegółowo

Wzorce projektowe. Wstęp

Wzorce projektowe. Wstęp Wstęp Stworzenie programu łatwego w rozwijaniu i naprawie nie należy do łatwych zadań. Na różnych etapach prac można napotkać wiele niemiłych niespodzianek i przeciwności losu, głównie takich które sami

Bardziej szczegółowo

Wzorce projektowe cz. I. Wzorce projektowe cz. I 1/33

Wzorce projektowe cz. I. Wzorce projektowe cz. I 1/33 Wzorce projektowe cz. I Wzorce projektowe cz. I 1/33 Wzorce projektowe cz. I 2/33 Historia Wzorce projektowe: wywodzą się z wzorców projektowych w architekturze termin wzorca projektowego wprowadzony do

Bardziej szczegółowo

Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.

Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej. 1/8 Singleton Cel: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej. Przykład: Niekiedy ważne jest, aby tworzyć tylko jedną instancję jakiejś klasy. Globalne zmienne

Bardziej szczegółowo

Wzorce projektowe cz. II

Wzorce projektowe cz. II Wzorce projektowe cz. II Prowadzący: Bartosz Walter Wzorce projektowe cz. II 1 Factory Method: cel Zdefiniowanie interfejsu do tworzenia obiektów UmoŜliwienie przekazania odpowiedzialności za tworzenie

Bardziej szczegółowo

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Wzorce projektowe i ich implementacja

Bardziej szczegółowo

Programowanie zorientowane obiektowo. Mateusz Kołecki

Programowanie zorientowane obiektowo. Mateusz Kołecki Programowanie zorientowane obiektowo Mateusz Kołecki Plan MVC Wstęp Separacja odpowiedzialnośći Antyprzykład Dobry przykład Wady/zalety MVC MVC to tylko początek - wzorce projektowe Dlaczego chcemy używać

Bardziej szczegółowo

Wzorce projektowe Michał Węgorek

Wzorce projektowe Michał Węgorek Wzorce projektowe Michał Węgorek Wzorce projektowe Plan prezentacji Co to jest i po co to jest? Podział Najczęściej spotykane wzorce Bibliografia Co to jest i po co to jest? Wzorzec projektowy (ang. Design

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych Projektowanie obiektowe Wzorce projektowe Wprowadzenie do wzorców projektowych 1 Zagadnienia Katalog wzorców projektowych wg Gang of Four Zasady projektowania obiektowego S O L I D MVC - Model-Widok-Kontroler

Bardziej szczegółowo

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski Adapter: opis Wzorce Strukturalne Tomasz Borzyszkowski Alternatywna nazwa: Wrapper (opakowanie) Rola obiektu Adapter: pełni wobec Klienta rolę otoczki, która umożliwia przetłumaczenie jego żądań na protokół

Bardziej szczegółowo

Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016

Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016 Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016 1 Wzorce strukturalne 1.1 Facade Motto: uproszczony interfejs dla podsystemu z wieloma interfejsami class SmtpFacade

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce odpowiedzialności

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce odpowiedzialności Projektowanie obiektowe Wzorce projektowe Gang of Four Wzorce odpowiedzialności 1 Roadmap Singleton Observer Mediator Proxy Flyweight 2 Wzorce odpowiedzialności Udostępniają techniki centralizacji, delegowania

Bardziej szczegółowo

Technologia Programowania 2016/2017 Wykład 6

Technologia Programowania 2016/2017 Wykład 6 Technologia Programowania 2016/2017 Wykład 6 Mockito, wzorce GoF, MVC Jakub Lemiesz Lista zadań na laboratorium 2 / 48 Testowanie Tradycyjnie: testy jednostkowe, integracyjne, systemowe, testy akceptacyjne

Bardziej szczegółowo

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo Wzorce projektowe dr inż. Marcin Pietroo Adapter - strukturalny wzorzec projektowy, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach - adapter przekształca interfejs

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Wykład 12 Marcin Młotkowski 16 maja 2018 Plan wykładu 1 Analiza obiektowa Dziedziczenie Dziedziczenie a składanie 2 Marcin Młotkowski 482 / 537 Dziedziczenie Dziedziczenie a składanie Plan wykładu 1 Analiza

Bardziej szczegółowo

Abstract Factory (fabryka abstrakcyjna)

Abstract Factory (fabryka abstrakcyjna) 1/9 Abstract Factory (fabryka abstrakcyjna) Cel: Zapewnienie interfejsu do tworzenia rodzin powiązanych obiektów bez specyfikacji konkretnej klasy. Przykład: Aplikacja do ustawiania mebli: osobne rodziny

Bardziej szczegółowo

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu

Bardziej szczegółowo

1) Wzorzec projektowy Adapter. Zastosowanie:

1) Wzorzec projektowy Adapter. Zastosowanie: Projektowanie Systemów Komputerowych Laboratoria/Projekty Krzysztof Regulski AGH, WIMiIP WZORCE STRUKTURALNE PSK - projektowanie systemów komputerowych, notatki w Internecie, Beata Frączek, http://brasil.cel.agh.edu.pl/~09sbfraczek

Bardziej szczegółowo

Program szkolenia: Wzorce projektowe w C++

Program szkolenia: Wzorce projektowe w C++ Program szkolenia: Wzorce projektowe w C++ Informacje: Nazwa: Wzorce projektowe w C++ Kod: CCPP-craft-C++ Patterns Kategoria: Craftsmanship dla programistów C i C ++ Grupa docelowa: developerzy Czas trwania:

Bardziej szczegółowo

Wzorce projektowe [ wstęp ]

Wzorce projektowe [ wstęp ] Wzorce projektowe [ wstęp ] Motywacje definiowania wzorców projektowych Za twórcę uważany jest amerykański architekt Christopher Alexander Alexander, C., Ishikawa, S., Silverstein, M., The Timeless Way

Bardziej szczegółowo

Wzorce projektowe cz. I

Wzorce projektowe cz. I Wzorce projektowe cz. I Prowadzący: Bartosz Walter Wzorce projektowe cz. I 1 Agenda 1. Motywacja dla stosowania i definiowania wzorców 2. Struktura wzorca projektowego 3. Katalog wzorców projektowych Wzorce

Bardziej szczegółowo

Prototype (prototyp) Cel: Przykład: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp.

Prototype (prototyp) Cel: Przykład: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp. 1/14 Prototype (prototyp) Cel: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp. Przykład: Edytor 3D klient tworzy obiekty różnych kształtów

Bardziej szczegółowo

Command (action, transaction, polecenie)

Command (action, transaction, polecenie) 1/10 Command (action, transaction, polecenie) Cel: Obiekt funkcyjny. Pozwala operować żądaniem jako obiektem wysyłać jako parametr, buforować, kolejkować, składować (dzienniki lub undo). Przykład: class

Bardziej szczegółowo

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Projektowanie obiektowe. Roman Simiński  Wzorce projektowe Wybrane wzorce strukturalne Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

Wypożyczalnia VIDEO. Technologie obiektowe

Wypożyczalnia VIDEO. Technologie obiektowe Wypożyczalnia VIDEO Jest to program do obsługi wypożyczalni i wypożyczeń klientów. Głównym zadaniem programu jest zarządzanie wypożyczeniami i drukowanie potwierdzenia wypożyczenia oraz naliczenie punktów

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

problem w określonym kontekście siły istotę jego rozwiązania

problem w określonym kontekście siły istotę jego rozwiązania Wzorzec projektowy Christopher Alexander: Wzorzec to sprawdzona koncepcja, która opisuje problem powtarzający się wielokrotnie w określonym kontekście, działające na niego siły, oraz podaje istotę jego

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń Projektowanie obiektowe Wzorce projektowe Gang of Four Wzorce rozszerzeń 1 Roadmap Decorator Iterator Visitor 2 Wzorce rozszerzeń Mają na celu uczynić proces rozszerzania kodu bardziej czytelnym, prostym

Bardziej szczegółowo

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo Wzorce projektowe dr inż. Marcin Pietroo Iterator czynnościowy wzorzec projektowy (obiektowy), którego celem jest zapewnienie sekwencyjnego dostępu do podobiektów zgrupowanych w większym obiekcie (np.

Bardziej szczegółowo

Projektowanie. Kryteria jakości projektu. Spójność obiektowa. Brak spójności obiektowej. Znaczenie notacji graficznych w projektowaniu

Projektowanie. Kryteria jakości projektu. Spójność obiektowa. Brak spójności obiektowej. Znaczenie notacji graficznych w projektowaniu Projektowanie Czy oprogramowanie jest zawsze projektowane? Znaczenie projektowania Projektowanie a wyniki fazy analizy class CPojazd { public: double Koszt (double Czas, double Droga); ; double CPojazd::Koszt

Bardziej szczegółowo

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania. Adrian Skalczuk Szymon Kosarzycki Spis Treści Wstęp [1/2] Wzorce projektowe są nieodłącznym przyjacielem programisty pozwalają pisać czystszy kod, łatwiejszy do zrozumienia przez innych i zapewniają pewien

Bardziej szczegółowo

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35 Wzorce projektowe cz. II Wzorce projektowe cz. II 1/35 Wzorce projektowe cz. II 2/35 Iterator Przeznaczenie Wzorzec zapewnia sekwencyjny dostęp do elementów obiektu zagregowanego bez ujawniania jego reprezentacji

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Metody statyczne i klasowe Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) PO w. VI Jesień 2013 1 / 23 W poprzednich odcinkach... Klasy kategorie obiektów Przynależność

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

Zaawansowane programowanie w C++ (PCP) Zaawansowane programowanie w C++ (PCP) Wykład 5 - obsługa błędów. Mechanizm wyjatków. dr inż. Robert Nowak - p. 1/24 Powtórzenie - wzorce wzorce kreacyjne fabryka abstrakcyjna (abstract factory) prototyp

Bardziej szczegółowo

Wzorce projektowe kreacyjne

Wzorce projektowe kreacyjne Wzorce projektowe kreacyjne Krzysztof Ciebiera 14 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawy Opis Ogólny Podstawowe informacje Wzorce kreacyjne sªu» do uabstrakcyjniania procesu tworzenia obiektów. Znaczenie

Bardziej szczegółowo

UML [ Unified Modeling Language ]

UML [ Unified Modeling Language ] UML [ Unified Modeling Language ] UML język formalny służący do opisu świata obiektów w analizie obiektowej oraz programowaniu obiektowym. W najnowszej wersji (2.4.x) języka UML wyróżnia się 13 diagramów

Bardziej szczegółowo

Projektowanie aplikacji JEE z użyciem wzorców projektowych i notacji UML

Projektowanie aplikacji JEE z użyciem wzorców projektowych i notacji UML Kod szkolenia: Tytuł szkolenia: UGC Projektowanie aplikacji JEE z użyciem wzorców projektowych i notacji UML Dni: 5 Opis: Adresaci Szkolenia: Szkolenie adresowane jest zarówno do programistów jak i projektantów,

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 1) Oprogramowanie to: 2) Produkty oprogramowania w inżynierii oprogramowania można podzielić na: 3) W procesie wytwarzania oprogramowania

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 4 Marcin Młotkowski 15 marca 2018 Plan wykładu 1 2 3 Klasa podstawowa Własne kolekcje Obiekty i wartości Marcin Młotkowski Programowanie obiektowe 141 / 224 Z czego składa

Bardziej szczegółowo

Projektowanie Aplikacji Internetowych. Wzorce projektowe warstwy usług

Projektowanie Aplikacji Internetowych. Wzorce projektowe warstwy usług Wzorce projektowe warstwy usług Wzorce projektowe warstwy usług Service Locator Ułatwia wyszukanie komponentów usługowych Service Activator Umożliwia asynchroniczne przesyłanie żądań do komponentów biznesowych

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Wzorce projektowe / Eric Freeman [et al.]. Gliwice, cop Spis treści

Wzorce projektowe / Eric Freeman [et al.]. Gliwice, cop Spis treści Wzorce projektowe / Eric Freeman [et al.]. Gliwice, cop. 2011 Spis treści Wprowadzenie Dla kogo przeznaczona jest ta ksiąŝka? 22 Wiemy takŝe, co sobie myśli Twój mózg 23 Metapoznanie 25 Zmuś swój mózg

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów) Projektowanie obiektowe Wzorce projektowe Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów) 1 Roadmap Adapter Bridge Composite Facade 2 Pojęcia obiekt interfejs typ klasa 3 Co to jest delegacja?

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

Perspektywa obiektowości

Perspektywa obiektowości Inżynieria Oprogramowania Wykład 10 Wzorce projektowe Perspektywa obiektowości obiekty hermetyzacja dziedziczenie klasy abstrakcyjne 2 Wzorce projektowe Czym są wzorce projektowe Przykładowe definicje:

Bardziej szczegółowo

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada 2010 Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka 1 Omówienie wzorców wykorzystywanych w Prism 5.0 Dominika Różycka Czym jest wzorzec projektowy? 2 3 Wzorzec projektowy 1. Uniwersalne i sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych

Bardziej szczegółowo

Materiały do zajęć VII

Materiały do zajęć VII Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja

Bardziej szczegółowo

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe

Programowanie obiektowe i zdarzeniowe Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm

Bardziej szczegółowo

Zaawansowane programowanie obiektowe - wykład 5

Zaawansowane programowanie obiektowe - wykład 5 Zaawansowane programowanie obiektowe - wykład 5 dr Piotr Jastrzębski (czynnościowe) opisują zachowanie obiektów, komunikację pomiędzy nimi i ich odpowiedzialność. Interpreter Iterator (kursor) Łańcuch

Bardziej szczegółowo

C#. Wzorce projektowe

C#. Wzorce projektowe PRZYK ADOWY ROZDZIA Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl IDZ DO KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE

Bardziej szczegółowo

Rozdział 1. Przegląd języka UML... 23 Diagram klas...24 Diagram współpracy...36 Diagram stanów...45

Rozdział 1. Przegląd języka UML... 23 Diagram klas...24 Diagram współpracy...36 Diagram stanów...45 O autorach... 13 Wprowadzenie... 15 Krótka historia wzorców projektowych...16 Organizacja niniejszej książki...17 Opis wzorców projektowych...18 Nazwa wzorca...18 Streszczenie...18 Kontekst...19 Zalety...19

Bardziej szczegółowo

ASP.NET Wprowadzenie. provided by Przemysław Bykowski

ASP.NET Wprowadzenie. provided by Przemysław Bykowski ASP.NET Wprowadzenie provided by Przemysław Bykowski Strona internetowa vs aplikacja internetowa Aplikacja internetowa Nie ustępuje możliwościami od standardowej aplikacji desktopowej Przeglądarka pośredniczy

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Programowanie Zespołowe

Programowanie Zespołowe Programowanie Zespołowe Dobre Praktyki dr Rafał Skinderowicz mgr inż. Michał Maliszewski Parafrazując klasyka: Jeśli piszesz w Javie pisz w Javie - Rafał Ciepiela Principal Software Developer Cadence Design

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego u ytku

Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego u ytku Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego u ytku Autorzy: Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides T³umaczenie: Tomasz Walczak ISBN: 978-83-246-2662-5 Tytu³

Bardziej szczegółowo

Wzorce projektowe. dr Jarosław Skaruz

Wzorce projektowe. dr Jarosław Skaruz Wzorce projektowe dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Wprowadzenie do wzorców projektowych Elementy wzorców Zalety stosowania wzorców Podział Strategia Singleton

Bardziej szczegółowo

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1 P d jś i bi kt d b d t ó Podejście obiektowe do budowy systemów rozproszonych Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java),wywiedziony idi z Remote obie kt aplikacja klie ncka interfe js serw

Bardziej szczegółowo

: ::Rysunek : ::Figura. Rysuj() *: Rysuj() Uwaga! Modularność (spójność i niezależność składowych) to nie to samo, lecz więcej niż hermetyzacja

: ::Rysunek : ::Figura. Rysuj() *: Rysuj() Uwaga! Modularność (spójność i niezależność składowych) to nie to samo, lecz więcej niż hermetyzacja Znaczenie projektowania Nie ma trudnych programów, są tylko źle zaprojektowane Jak coś jest trudne, to projektuj tak długo aż stanie się proste Kryteria jakości projektu Modularność Silne (wewnętrznie

Bardziej szczegółowo

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Proxy (pełnomocnik) Cel: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Zastosowanie: Wszędzie tam, gdzie oczekujemy bardziej zaawansowanego odwołania do obiektu, niż zwykły

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów

Bardziej szczegółowo