Objektumvezérelt rendszerek tervezése 9.óra – Builder, Observer © Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Builder - motiváció RTF konverter, ami tetszőleges formátumokba tud exportálni Könnyen bővíthetőnek kell lennie új formátumokkal © Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Builder Cél: összetett objektum létrehozási folyamatának elkülönítése a tényleges reprezentációtól Alkalmazhatóság: összetett objektum gyártási algoritmusa független kell hogy legyen az összetevők részleteitől a gyártási folyamat különböző reprezentációkat kell hogy (egységesen) kezeljen © Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Builder © Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Kérdések Mikor használjunk Builder-t és mikor Abstract Factory-t vagy Abstract Method-ot? Tegyük fel, hogy egy osztály Torta objektumokat épít del pl. tojás, tej, liszt, stb kötelező elemekből és gyümölcs, cseresznye, stb opcionális elemekből. Készítsünk hozzá Buildert. Mivel jobb ez, mintha különböző Torta-kat különböző konstruktorokkal készítenénk el? © Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Observer – motiváció Objektumok mindenkori konzisztenciája Pl. GUI felületen adat mező legyen szerkeszthető valahol és a többi megjelenített helyen is maradjon konzisztens © Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Observer Cél: egy objektum állapotának megváltozásáról a tőle függő objektumok értesítése, hogy azok aktualizálódhassanak (egy-több függőség) Alkalmazhatóság: valamilyen absztrakció kétféleképpen létezik (pl. modell és nézet) és az egyik függ a másiktól. Ezek külön objektumokként jelennek meg, mégis konzisztensek kell hogy legyenek ha az egyik objektum megváltozásával más objektumok változása is szükséges, de ezek száma tetszőleges egy objektumnak értesítenie kell további objektumokat, de azok kiléte előre ismeretlen © Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Observer © Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Observer © Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Kérdések Mi a különbség a databinding és az observer között? Mondj példákat observer használatra! © Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Érdekességek 20 Design pattern and Software design interview questions for Programmers 20 Design pattern and Software design interview questions for Programmers pattern-and-software-design.html pattern-and-software-design.html 10 Object Oriented Design Principles Java Programmer should know oriented-design-principles.html oriented-design-principles.html © Nagy Csaba