Wzorce projektowe strukturalne cz. 1
|
|
- Karol Stachowiak
- 6 lat temu
- Przeglądów:
Transkrypt
1 Wzorce projektowe strukturalne cz. 1 Krzysztof Ciebiera 19 pa¹dziernika
2 1 Wst p 1.1 Podstawowe wzorce Podstawowe wzorce Podstawowe informacje Singleton gwarantuje,»e klasa ma jeden egzemplarz. Adapter dostosowuje jeden interfejs do innego. Kompozyt buduje hierarchi z obiektów prostych i zªo»onych. Peªnomocnik jest przedstawicielem lub substytutem innego obiektu. 2 Singleton 2.1 Denicja Singleton Przeznaczenie Gwarantuje,»e klasa ma tylko jeden egzemplarz, i zapewnia globalny dost p do niego. Przykªad Program buforuj cy dla drukarek. Stosowalno± klasa musi mie tylko dokªadnie egzemplarz, dost pny dla jej klientów; powinno by mo»liwe rozbudowywanie tego jedynego egzemplarza przez deniowanie podklas, a klienci powinni móc u»ywa rozszerzonego egzemplarza bez modykowania swojego kodu. Struktura singletonu
3 Konsekwencje singletonu Konsekwencje Kontrolowany dost p do jedynego egzemplarza. Mniejsza przestrze«nazw. Mo»liwe udoskonalenie operacji i reprezentacji. Zmienna liczba egzemplarzy. Wi ksza elastyczno± ni» w wypadku operacji klasowych. 2.2 Implementacja Zagwarantowanie unikatowego egzemplarza Deklaracja class Singleton { static Singleton* Egzemplarz(); protected: Singleton(); private: static Singleton* _egzemplarz; Zagwarantowanie unikatowego egzemplarza Implementacja Singleton* Singleton::_egzemplarz = 0; Singleton* Singleton::Egzemplarz() { if (_egzemplarz == 0) { _egzemplarz = new Singleton; return _egzemplarz; Tworzenie podklas klasy Singleton Uwaga To jedna z kilku metod. Wykorzystanie archiwum deklaracja 2
4 class Singleton { static void Wprowadz(const char* nazwa, Singleton*); static Singleton* Egzemplarz(); protected: static Singleton* Wyszukaj(const char* nazwa); private: static Singleton* _egzemplarz; static List<ParaNazwaSingleton>* _archiwum; Tworzenie podklas klasy Singleton Wykorzystanie archiwum implementacja Singleton* Singleton::Egzemplarz() { if (_egzemplarz == 0) { const char* nazwasingletonu = "MAGIA_DZIALA"; _egzemplarz = Wyszukaj(nazwaSingletonu); return _egzemplarz;... MojSingleton::MojSingleton() { //... Singleton::Wprowadz("MojSingleton", this)... static MojSingleton singleton; 3 Adapter 3.1 Denicja Adapter Przeznaczenie Wzorzec przeksztaªca interfejs klasy w taki, jakiego klienci oczekuj. Dzi ki Adapterowi klasy mog wspóªpracowa, co bez niego nie byªoby mo»liwe, poniewa» maj niezgodne interfejsy. Przykªad Doª czenie istniej cej rejestracji do grup do nowego modelu jej obsªugi. 3
5 Adapter stosowalno± Stosowalno± chcesz wykorzysta istniej c klas, a jej interfejs nie odpowiada temu, którego potrzebujesz; chcesz utworzy klas wielokrotnego u»ytku, która wspóªpracuje z niepowi zanymi ze sob lub nieprzewidzianymi klasami, to znaczy takimi, które niekoniecznie maj zgodne interfejsy; (tylko adapter obiektów) potrzebujesz u»y kilku istniej cych podklas, ale zaadaptowanie ich interfejsów przez tworzenie ich podklas jest niepraktyczne; adapter obiektów mo»e adaptowa interfejs swojej nadklasy. Struktura adaptera klas Struktura adaptera obiektów Konsekwencje adapterów Konsekwencje adaptera klas adaptuje Adaptowanego do Celu, ale nie b dzie dziaªaª na podklasy Adaptowanego; umo»liwia Adapterowi przedeniowanie cz ±ci zachowania Adaptowanego; 4
6 wprowadza tylko jeden obiekt, aby dosta si do Adaptowanego. Konsekwencje adaptera obiektów umo»liwia jednemu Adapterowi dziaªanie z wieloma Adaptowanymi, w tym z wszystkimi podklasami Adaptowanego; utrudnia przedeniowywanie zachowania Adaptowanego. 3.2 Implementacja Adapter klas deklaracja class Ksztalt{ Ksztalt(); virtual void RamkaBrzegowa( Punkt& lewydolny, Punkt& prawygorny); virtual Manipulator* StworzManipulator(); class WidokTekstu{ WidokTekstu(); void PodajPoczatek(Wspol& x, Wspol& y); void PodajRozmiar(Wspol& szerokosc, Wspol& wysokosc); virtual bool JestPusty(); Adapter klas deklaracja class KsztaltTekst : public Ksztalt, private WidokTekstu{ KsztaltTekst(); virtual void RamkaBrzegowa( Punkt& lewydolny, Punkt& prawygorny); virtual bool JestPusty(); virtual Manipulator* StworzManipulator(); Adapter klas implementacja 5
7 void KsztaltTekst::RamkaBrzegowa( Punkt& lewydolny, Punkt& prawygorny) { Wspol dol, lewo, szerokosc, wysokosc; PodajPoczatek(dol, lewo); PodajRozmiar(szerokoc, wysokosc); lewydolny = Punkt(dol, lewo); lewydolny = Punkt(dol+wysokosc, lewo+szerokosc); bool KsztaltTekst::JestPusty() { return WidokTekstu::JestPusty(); ; Manipulator* StworzManipulator() { return new ManipulatorTekstow(this); Adapter obiektu deklaracja class KsztaltTekst : public Ksztalt { KsztaltTekst(WidokTekstu * t) { _tekst = t; ; virtual void RamkaBrzegowa( Punkt& lewydolny, Punkt& prawygorny); virtual bool JestPusty(); virtual Manipulator* StworzManipulator(); private: WidokTekstu* _tekst; Adapter obiektu implementacja void KsztaltTekst::RamkaBrzegowa( Punkt& lewydolny, Punkt& prawygorny) { Wspol dol, lewo, szerokosc, wysokosc; _tekst->podajpoczatek(dol, lewo); _tekst->podajrozmiar(szerokoc, wysokosc); lewydolny = Punkt(dol, lewo); lewydolny = Punkt(dol+wysokosc, lewo+szerokosc); bool KsztaltTekst::JestPusty() { return _tekst->jestpusty(); ; Manipulator* StworzManipulator() { return new ManipulatorTekstow(this); 6
8 4 Kompozyt 4.1 Denicja Kompozyt Przeznaczenie Wzorzec ten skªada obiekty w struktury drzewiaste reprezentuj ce hierarchie typu cz ± -caªo±. Umo»liwia klientom jednakowe traktowanie pojedynczych obiektów i zªo»e«obiektów. Przykªad Struktura jednostek organizacyjnych w systemie Internetowej Rekrutacji Kandydatów na studia. Kompozyt stosowalno± Stosowalno± chcesz przedstawi hierarchie obiektów cz ± -caªo± ; chcesz, by klienci mogli ignorowa ró»nic mi dzy zªo»eniami obiektów, a pojedynczymi obiektami; klienci b d wtedy jednakowo traktowa wszystkie obiekty wyst puj ce w strukturze. Struktura kompozytu Konsekwencje kompozytu Konsekwencje kompozytu Deniuje hierarchie klas grupuj ce obiekty pierwotne i zªo»one. Upraszcza budow klienta. Uªatwia dodawanie nowych rodzajów komponentów. Mo»e sprawi,»e projekt b dzie zbyt ogólny. 7
9 4.2 Implementacja Kompozyt deklaracja class Sprzet{ virtual Pieniadze Cena(); protected: Sprzet(); class StacjaDyskietek : public Sprzet { virtual Pieniadze Cena() {return Pieniadze(10);; class KompozytSprzetowy : public Sprzet { virtual Pieniadze Cena(); protected: KompozytSprzetowy(); private: Lista<Sprzet *> _sprzet; Kompozyt implementacja Pieniadze KompozytSprzetowy::Cena() { Iterator<Sprzet*>* i = StworzIterator(); Pieniadze razem = 0; for (i->napoczatek();!i->zrobione(); i->nastepny()) { razem += i->biezacyelement->cena(); delete i; return razem; 5 Peªnomocnik 5.1 Denicja Peªnomocnik Przeznaczenie Wzorzec ten zapewnia substytut lub reprezentanta innego obiektu w celu sterowania dost pem do niego. Przykªad 8
10 Inicjalizowanie poª czenia do bazy danych. Stosowalno± Zawsze wtedy, kiedy potrzeba bardziej uniwersalnego lub bardziej wyranowanego odwoªania do obiektu, ni» zwykªy wska¹nik. Struktura peªnomocnika Konsekwencje peªnomocnika Konsekwencje peªnomocnika Peªnomocnik wprowadza dodatkowy poziom po±rednio±ci przy dost pie do obiektu. 5.2 Implementacja Peªnomocnik deklaracja class ObiektGraficzny { virtual void Rysuj() = 0; protected: ObiektGraficzny(); ; class Rysunek : public ObiektGraficzny { virtual void Rysuj(); Rysunek(char* z); ; class PelnomocnikRysunku : public ObiektGraficzny { virtual void Rysuj(); PelnomocnikRysunku(char* z); protected: Rysunek* PodajRysunek(); private: Rysunek* _rysunek; char* _nazwapliku; ; Peªnomocnik implementacja PelnomocnikRysunku::PelnomocnikRysunku(char* z) { _nazwapliku = strdup(z); 9
11 _rysunek = 0; Rysunek* PelnomocnikRysunku::PodajRysunek() { if (_rysunek == 0) { _rysunek = new Rysunek(_nazwaPliku); return _rysunek; void PelnomocnikRysunku::Rysuj() { PodajRysunek()->Rysuj() 10
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ółowoWzorce 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ółowo1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.
1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja
Bardziej szczegółowoSingleton. 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ółowoZaawansowane 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ółowoWzorce 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ółowoProgramowanie obiektowe w C++ Wykªad 4
Programowanie obiektowe w C++ Wykªad 4 dr Lidia St pie«akademia im. Jana Dªugosza w Cz stochowie L. St pie«(ajd) Programowanie obiektowe w C++ 1 / 26 Dziedziczenie - podstawy Denicja klasy dziedzicz cej
Bardziej szczegółowoPodstawy modelowania w j zyku UML
Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 2 Zwi zki mi dzy klasami Asocjacja (ang. Associations) Uogólnienie, dziedziczenie (ang.
Bardziej szczegółowoPROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.
PROGRAMOWANIE OBIEKTOWE W C++ cz. 2 Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów. Dziedziczenie Dziedziczenie jest to technika pozwalaj c na definiowanie nowej klasy przy wykorzystaniu
Bardziej szczegółowoKlasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np
Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami
Bardziej szczegółowo0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie
0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na
Bardziej szczegółowoModel obiektu w JavaScript
16 marca 2009 E4X Paradygmat klasowy Klasa Deniuje wszystkie wªa±ciwo±ci charakterystyczne dla wybranego zbioru obiektów. Klasa jest poj ciem abstrakcyjnym odnosz cym si do zbioru, a nie do pojedynczego
Bardziej szczegółowoProgramowanie 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ółowoMiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska
MiASI Modelowanie systemów informatycznych Piotr Fulma«ski Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska 18 stycznia 2010 Spis tre±ci 1 Analiza systemu informatycznego Poziomy analizy 2
Bardziej szczegółowoDziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.
Programowanie II prowadzący: Adam Dudek Lista nr 8 Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to najważniejsza cecha świadcząca o sile programowania
Bardziej szczegółowoAnaliza 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ółowoProgramowanie 2. Język C++. Wykład 2.
2.1 Definicja, deklaracja, wywołanie funkcji.... 1 2.2 Funkcje inline... 4 2.3 Przekazanie do argumentu funkcji wartości, adresu zmiennej.... 5 2.4 Wskaźniki do funkcji... 8 2.5 Przeładowanie funkcji...
Bardziej szczegółowoProjektowanie 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ółowoProgramowanie i struktury danych
Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w
Bardziej szczegółowoProgramowanie 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ółowoPodstawy programowania obiektowego
Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie
Bardziej szczegółowoPROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.
PROGRAMOWANIE OBIEKTOWE W C++ - cz 1 Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory. Program komputerowy opisuje w pewien sposób rzeczywisto.
Bardziej szczegółowoEdycja geometrii w Solid Edge ST
Edycja geometrii w Solid Edge ST Artykuł pt.: " Czym jest Technologia Synchroniczna a czym nie jest?" zwracał kilkukrotnie uwagę na fakt, że nie należy mylić pojęć modelowania bezpośredniego i edycji bezpośredniej.
Bardziej szczegółowo1. Wprowadzenie do C/C++
Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Bardziej szczegółowoWzorce 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ółowoZaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 3 - polimorfizm. dr inż. Robert Nowak - p. 1/14 Powtórzenie Powtórzenie: klasy autonomiczne: konstruktor, konstruktor kopiujacy, operator przypisania, destruktor
Bardziej szczegółowoProgramowanie 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ółowoWYKŁAD 11. Wzorce projektowe czynnociowe Iterator TemplateMethod
WYKŁAD 11 Wzorce projektowe czynnociowe Iterator TemplateMethod Behavioral Design Pattern: Iterator [obj] Zapewnia sekwencyjny dostp do elementów agregatu bez ujawniania jego reprezentacji wewntrznej.
Bardziej szczegółowoProjektowanie i programowanie obiektowe (materiały do wykładu cz. VI)
Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI) Jacek Cichosz www.zssk.pwr.wroc.pl Katedra Systemów i Sieci Komputerowych Politechnika Wrocławska Dziedziczenie 221 Dziedziczenie Dziedziczenie
Bardziej szczegółowo( rednio)zaawansowane programowanie w C++
( rednio)zaawansowane programowanie w C++ Wykªad 2 - staªo±, wzorce projektowe Robert Nowak 2017L ( rednio)zaawansowane programowanie w C++ 1/28 Plan wykªadu podstawowe poj cia w C++ (powtórzenie) staªo±
Bardziej szczegółowoProjektowanie 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ółowoWYKŁAD 7. Wzorce projektowe strukturalne Adapter Bridge
WYKŁAD 7 Wzorce projektowe strukturalne Adapter Bridge Structural Design Pattern: Adapter Przekształca interfejs klasy w taki, jakiego oczekuj klienci. Dziki adapterowi istniejce wczeniej klasy mog wspolpracowa,
Bardziej szczegółowoInterfejsy, klasy wewn trzne jako szczególny rodzaj obiektów
Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 16.03.2017 Interfejsy raz jeszcze "Interfejsy
Bardziej szczegółowoProgramowanie obiektowe
Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka
Bardziej szczegółowoWzorce 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ółowoPARADYGMATY PROGRAMOWANIA Wykład 3
PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na
Bardziej szczegółowoOperator przypisania. Jest czym innym niż konstruktor kopiujący!
Operator przypisania Jest czym innym niż konstruktor kopiujący! Domyślnie jest zdefiniowany jako przypisanie składowa po składowej (zatem niekoniecznie bajt po bajcie). Dla klasy X definiuje się jako X&
Bardziej szczegółowoDzisiejszy 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ółowoWykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Bardziej szczegółowo1. Wprowadzenie do C/C++
Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Bardziej szczegółowoKompozycja i dziedziczenie klas
Programowanie obiektowe Kompozycja i dziedziczenie klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Kompozycja i dziedziczenie klas
Bardziej szczegółowoImi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy
Imi i nazwisko....................................................... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy 21.01.2017 Instrukcja:
Bardziej szczegółowoProjektowanie 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ółowoProgramowanie Obiektowe i C++
Programowanie Obiektowe i C++ Marcin Benke Instytut Informatyki UW 6.11.2006 Marcin Benke (IIUW) Programowanie Obiektowe i C++ 6.11.2006 1 / 138 Operator przypisania Jest czym innym niż konstruktor kopiujacy!
Bardziej szczegółowoMiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska
MiASI Modelowanie analityczne Piotr Fulma«ski Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska 18 stycznia 2010 Spis tre±ci 1 Czym jest modelowanie analityczne? 2 Podstawowe kategorie poj ciowe
Bardziej szczegółowoKurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Bardziej szczegółowoParadygmaty programowania. Paradygmaty programowania
Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 2 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................
Bardziej szczegółowoProjektowanie 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ółowoDiagramy 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ółowo3-4. 5-7. 8-10. 11-12 15-18. 19-22
1. 2. 3-4. 5-7. 8-10. 11-12 13-14. 15-18. 19-22 23-28. 29-30. Programowanie strukturalne i obiektowe Typ wyliczeniowy, lista wyliczeniowa. Rzutowanie w C++. Wskaźniki i referencje. Działania na wskaźnikach.
Bardziej szczegółowoProgramowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Wykład 9 - powtórzenie. 11 maja 2007 Powtórzenie materiału obiekty automatyczne, statyczne, tymczasowe, dynamiczne dziedziczenie, agregacja polimorfizm, funkcje wirtualne wzorce projektowe (strukturalne,
Bardziej szczegółowoDokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
Bardziej szczegółowoJAVA 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ółowoProjektowanie 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ółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 4. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Przeciążanie operatorów Funkcje zaprzyjaźnione Na
Bardziej szczegółowoProgramowanie 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ółowoPROJEKT TYMCZASOWEJ ORGANIZACJI RUCHU
PBS Dit Ryszard Przybył 62-300 Września ul. Kościuszki 60/4 tel. 502 174 480, fax 061 640 13 81 e-mail pbsdit@interia.pl projekty dróg, ulic, placów, zjazdów oraz nadzory nad robotami drogowymi PROJEKT
Bardziej szczegółowoUML 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ółowoWykład 7: Pakiety i Interfejsy
Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,
Bardziej szczegółowoWzorce 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ółowoZaawansowane programowanie w języku C++ Klasy w C++
Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń
Bardziej szczegółowo1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Bardziej szczegółowoProgramowanie 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ółowoZaawansowane 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ółowoSkładnia C++ Programowanie Obiektowe Mateusz Cicheński
Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Konstruktory i destruktory
Bardziej szczegółowoIMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi
IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji
Bardziej szczegółowoAndroid. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015
Android Podstawy tworzenia aplikacji Piotr Fulma«ski Instytut Nauk Ekonomicznych i Informatyki, Pa«stwowa Wy»sza Szkoªa Zawodowa w Pªocku, Polska March 4, 2015 Table of contents Framework Jednym z najwarto±ciowszych
Bardziej szczegółowoEnkapsulacja, dziedziczenie, polimorfizm
17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja
Bardziej szczegółowo//////////////////////////////////////////////////////////// // Kalkulator (prosty) - wersja agregowalna import "unknwn.idl";
/ Kalkulator (prosty) - wersja agregowalna import "unknwn.idl"; Interface ICalc uuid(892753ed-d14e-4d2f-b812-041e0c01f5f3), helpstring("kalkulator (prosty), wersja agregowalna"), interface ICalc : IUnknown
Bardziej szczegółowoProxy (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ółowoKurs 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ółowoLista dwukierunkowa - przykład implementacji destruktorów
Lista dwukierunkowa - przykład implementacji destruktorów Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2008 Bogdan Kreczmer Niniejszy dokument zawiera
Bardziej szczegółowoWzorce 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ółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Bardziej szczegółowoPodstawy modelowania w j zyku UML
Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 8 Diagram pakietów I Diagram pakietów (ang. package diagram) jest diagramem strukturalnym,
Bardziej szczegółowoKurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
Bardziej szczegółowoTechnologia 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ółowoProblem Próby rozwiązania Maszyna stanów Inne zastosowania Podsumowanie. Maszyny stanów. Programowanie gier bez Unity, cz. 3.
Maszyny stanów Programowanie gier bez Unity, cz. 3 Piotr Korgul Koło Naukowe Twórców Gier Polygon 3 grudnia 2014 r. Cykl Programowanie gier bez Unity 1 Jak zorganizować prace nad grą? 2 Jak działa gra?
Bardziej szczegółowoPrzykładowa implementacja
Wzorce projektowe, cz. 10 Facade Fasada służy do ujednolicenia dostępu do złożonego systemu poprzez udostępnienie uproszczonego i uporządkowanego interfejsu programistycznego. Fasada zwykle implementowana
Bardziej szczegółowoWprowadzenie 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ółowoPARADYGMATY PROGRAMOWANIA Wykład 2
PARADYGMATY PROGRAMOWANIA Wykład 2 Definiowanie klas w C++ - ciąg dalszy Lista inicjalizująca konstruktora Przeznaczenie - do inicjalizacji pól klasy z kwalifikatorem const i inicjalizacji obiektów składowych
Bardziej szczegółowoPola i metody statyczne. Klasy zawierające pola i metody statyczne
Instrukcja laboratoryjna nr 1 Programowanie w języku C 2 (C++ poziom zaawansowany) Pola i metody statyczne. Klasy zawierające pola i metody statyczne dr inż. Kaczmarek Tomasz mgr inż. Lasota Maciej dr
Bardziej szczegółowoPolimorfizm. dr Jarosław Skaruz
Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody
Bardziej szczegółowoProgramowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Wirtualne destruktory class A int* a; A(int _a) a = new int(_a);} virtual ~A() delete a;} class B: public A double* b;
Bardziej szczegółowoProgramowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
Bardziej szczegółowo1 Stos: Stack i Stack<T>
1 Stos: Stack i Stack Przykªady z»ycia: Stos talerzy (aby wyci gn co± ze ±rodka, musimy wyci gn te z góry) Meble ªadowane do naczepy ci»arówki Osoby wsiadaj ce do samolotu i wysiadaj ce z niego. Piramida
Bardziej szczegółowoBazy danych, 4. wiczenia
Bazy danych, 4. wiczenia 2007-10-23 1 Plan zaj PL/SQL, cz ± II: tabele kursory sªu» ce do zmiany danych, procedury, funkcje, pakiety, wyzwalacze. 2 Tabele Deklaracja TYPE t_tab IS TABLE OF VARCHAR(20)
Bardziej szczegółowoObiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Bardziej szczegółowoprogramowanie w oparciu o platformę netbeans w praktyce
programowanie w oparciu o platformę netbeans w praktyce Adam Kędziora. Netbeans innovators grants. Mechanizm lookup jako panorama firm. Węzły w netbeans. Mechanizm lookup jako torba z narzędziami. Dwa
Bardziej szczegółowoSpis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHICZNA 1
I N T E R F E J S W E BSERVICES NADAWANIE PAKIETÓW DO S YSTEMU MKP P RZEZ INTERNET D O K U M E N T A C J A T E C H N I C Z N A S T Y C Z E Ń 2 0 1 2 Spis treści 1. Wstęp... 2 2. Informacje ogólne... 2
Bardziej szczegółowoPerspektywa 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ółowoOmó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ółowoKlasy abstrakcyjne, interfejsy i polimorfizm
Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z
Bardziej szczegółowoLaboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
Bardziej szczegółowoProgramowanie w języku C++
Programowanie w języku C++ Część dziewiąta Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi
Bardziej szczegółowoZarządzanie Zasobami by CTI. Instrukcja
Zarządzanie Zasobami by CTI Instrukcja Spis treści 1. Opis programu... 3 2. Konfiguracja... 4 3. Okno główne programu... 5 3.1. Narzędzia do zarządzania zasobami... 5 3.2. Oś czasu... 7 3.3. Wykres Gantta...
Bardziej szczegółowoPHP 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