Objektumvezérelt rendszerek tervezése 7. óra – Iterator, State, Interpreter © Szőke Gábor.

Slides:



Advertisements
Hasonló előadás
A Savaria Egyetemi Könyvtár Katalógusa Böngészés Keresés Találatok megjelenítése Adatbázis választás Olvasói tranzakciók.
Advertisements

ADATBÁZISOK.
Hatékonyságvizsgálat, dokumentálás
UML Példa © Fülöp Lajos.
Programozás III STRING-XML.
C++ programozási nyelv Gyakorlat hét
Programozás III OOP ALAPOK.
Operációs rendszerek gyakorlat 10. Gyakorlat Vakulya Gergely.
Rendszerfejlesztés gyakorlat - © Fülöp Lajos
Grafikus tervezőrendszerek programozása 2. előadás.
Savaria Egyetemi Könyvtár Katalógusa Böngészés Keresés Találatok megjelenítése Adatbázis választás Olvasói tranzakciók.
Programozás III KOLLEKCIÓK 2..
Rendszerfejlesztés II gyak
JavaScript.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Vizuális modellezés Uml és osztálydiagram UML eszközök
Programozás II. 3. Gyakorlat C++ alapok.
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
Fejlett Programozási Technológiák II. Világos Zsolt 12. gyakorlat.
Mutatók, tömbök, függvények
Adatbázis-kezelés ACCESS program:
JSP és JavaBean JavaServer Pages és Java Beans Fabók Zsolt Általános Informatikai Tanszék Miskolci Egyetem.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Önleíró adatok: XML INFO ÉRA, Békéscsaba
Ficsor Lajos Template-ek CPP8/ 1 Template-ek. Ficsor Lajos Template-ek CPP8/ 2 A template fogalma Kiindulási probléma: tetszőleges típusokon kellene ugyanolyan.
Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék
Ficsor Lajos CPP6 / 1 Virtuális bázisosztály Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék.
Bevezetés a C++ programozási nyelvbe
Objektum Vezérelt Szoftverek Analízise Ferenc Rudolf és Beszédes Árpád Szegedi Tudományegyetem FrontEndART.
Objektumok. Az objektum információt tárol, és kérésre feladatokat hajt végre. Az objektum adatok (attribútumok) és metódusok (operációk,műveletek) összessége,
A programozás alapjai A számítógép számára a feladat meghatá- rozását programozásnak nevezzük. Ha a processzor utasításait használjuk a feladat meghatározásához,
Objektumorientált tervezés és programozás II. 3. előadás
Funkcionális programozás 2. gyakorlat
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
Objektumorientált programozás
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 8. gyakorlat.
Java programozási nyelv Metódusok
Supervizor By Potter’s team SWENG 1Szarka Gábor & Tóth Gergely Béla.
1 Objektum orientált programozás Öröklődés: többszörös öröklődés, konstruktorok, destruktorok, overloading Nagy Szilvia.
Objektumvezérelt rendszerek tervezése
Objektumvezérelt rendszerek tervezése 4.óra – Composite, Decorator © Fülöp Lajos.
Objektumvezérelt rendszerek tervezése
Objektumvezérelt rendszerek tervezése 9.óra – Builder, Observer © Nagy Csaba.
Adamkó Attila UML2 Adamkó Attila
Objektumvezérelt rendszerek tervezése 5.óra – Singleton, Visitor, Abstract Factory © Nagy Csaba.
Gyurkó György. Az állapotmodellezés célja Általánosságban ugyanaz, mint a többi dinamikus modellezési technikáé: Jobban megismerni a problémát. Finomítani.
UML modellezés 3. előadás
Bináris kereső fák Itterátorok.
1 Objektum orientált programozás Az objektumok és az osztályok – példányosodás Nagy Szilvia.
Programozás I. 3. gyakorlat.
Objektumvezérelt rendszerek tervezése 6.óra – Factory Method © Szőke Gábor.
Félcsoport (semigroup) = ({s},{ *: s s  s [infix]}. semigroup is a type specification = sorts: s oprs: *: s s  s [infix] eqns: m 1, m 2, m 3  s (m 1.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 8. gyakorlat.
Informatikai gyakorlatok 11. évfolyam
Informatikai gyakorlatok 11. évfolyam
Programozás III ÖTLETEK A FELADATMEGOLDÁSHOZ. A HF-EK APROPÓJÁN Néhány javaslat: 1. Jó lenne, ha a feladatmegoldás előtt átnéznék az előadás-anyagokat.
Programozás III JPA.
Fordítóprogramok gyakorlat tavaszi félév gyakorlatvezető:Kitlei Róbert szoba:D 2-616B honlap:
Strukturális tervezési minták
UML használata a fejlesztésben, illetve a Visual Studio 2010-ben
Programozási nyelvek típusossága.
Viselkedési minták Behavioral patterns.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE)
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE)
Programozási nyelvek alapfogalmai
SZÖM II. Fejlesztési szint folyamata 2. Az önértékelés végrehajtása 5
Informatikai gyakorlatok 11. évfolyam
Algoritmus készítés.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE)
1. Bevezetés A programozásba
Előadás másolata:

Objektumvezérelt rendszerek tervezése 7. óra – Iterator, State, Interpreter © Szőke Gábor

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Iterator Cél: tároló-objektum elemeinek sorozatos elérése a reprezentációtól függetlenül Alkalmazhatóság:  egy tároló objektum tartalmát el akarjuk érni függetlenül a belső reprezentációtól  egyidejűleg többszörös bejárásra is szükség van  egységes interfészre van szükség különböző tároló szerkezetekhez © Fülöp Lajos

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Iterator © Fülöp Lajos

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Iterator példa - leírás Van két típusú listánk  Feladatok listája (TodoList) ArrayListben tárol  Feladatok gyűjteményének listája (ToDoListCollection) HashMapben tárol A két listát egységesen akarjuk bejárni Az egységes bejárással kiíratjuk a feladatokat (ListPrinter) © Fülöp Lajos

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Iterator példa - résztvevők Aggregate – Iterating Client – ListPrinter ConcreteAggregate  ToDoListCollectionImpl  ToDoListImpl Iterator, ConcreteIterator  Beepitett java iteratorokat használunk © Fülöp Lajos

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Iterator példa - diagram © Fülöp Lajos

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Iterator - megjegyzés Kötelező programban előfordulhat  Saját iterátort kell írni (ne a beépített nyelvit h.)  Composite-ot kellene iterálni Ez nem egyszerű feladat, ezért végső esetben kiváltható Visitor minta, vagy az alapértelmezett Composite bejárással Composite::Component ~ Iterator::ConcreteAggregate Ha több Composite reprezentációnk van akkor lesz több ConcreteAggregate (ez nem kötelező)  Tipp Iterator::Iterator plusz infot kell hogy tároljon arról, hogy hol jár a Composite fában (pl. egy verem referenciákkal az éppen bejárt elemekre) Component getChild(int) metódusát használni kell © Fülöp Lajos

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Iterator – megjegyzés példa © Fülöp Lajos

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék State Cél: objektum viselkedésének megváltoztatása belső állapotváltozás hatására (kívülről úgy tűnik, mintha az osztályát változtatná meg) Alkalmazhatóság:  objektum viselkedése állapotának függvénye, és az futás közben változhat  operációkban nagy elágazások vannak, többen ugyanazon szerkezettel, pl. valami konstanstól függővé téve

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék State

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék State példa Egy RPG kalandjátékban a karakterünk attól függően, hogy milyen műveletet végzünk vele több állapotban is lehet. Az egyes műveletek végrehajtásának az eredménye függ az adott állapottól is.

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék State példa Context – Context AbstractState – IState ConcreteState  MovingState  PanickingState  RestingState  AttackingState

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék State példa

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Interpreter Cél: egy nyelv nyelvtanának reprezentálása a hozzá tartozó interpreterrel (szintaxis fa épül, majd a nyelv szavai ezen lesznek elemezve) Alkalmazhatóság:  nyelv megadható, melynek szintaxisfáján történhet az elemzés  nagyobb feladatokhoz jobbak az elemző- generátorok (osztályhierarchia nagy lehet) © Fülöp Lajos

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Interpreter © Fülöp Lajos

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Interpreter példa - leírás Van egy személyek elérhetőségét (Contact) tároló kollekciónk (ContactList). Interpreter segítségével definiálunk egy kifejezést, amit arra használhatunk, hogy a kollekcióban az adott kritériumoknak megfelelő Contact-okra keresve visszakapjuk a megfelelő Contact-ok egy halmazát © Fülöp Lajos

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Interpreter példa - résztvevők AbstractExpression – Expression NonTerminalExpression  ContainsExpression  EqualsExpression  AndExpression TerminalExpression  VariableExpression  ConstantExpression © Fülöp Lajos

Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Interpreter példa - diagram © Fülöp Lajos