View
2
Download
0
Category
Preview:
Citation preview
Objektumelvű tervezés alapjai
SOLID elvekSingle responsibility principle: Egy programegység csak egyvalamiért felelhet.
Open/closed principle: a programegységek nyitottak a kiterjesztésre, de zártak a módosításra (Kiterjeszthető az osztály módosítása nélkül).
Liskov substitution principle: Az objektumok altípusaik példányaival helyettesíthetőek a program értelmének megváltozása nélkül.
Interface segregation principle: Több kliens specifikus interfész használata egy általános helyett. Egy kliens nem függhet olyan metódusoktól, amelyeket nem használ.
Dependency inversion principle: Az egyes programegységek függőségei absztakciók, nem konkrét implementációk.
SRP
SRP
OCP
LSPMinden olyan helyen, ahol a szülő osztály egy példányát használjuk, kicserélhető a leszármazott osztály példányával a program jelentésének megváltozása nélkül.
- Az altípusos polimorfizmus és az LSP hasonló fogalom. Mi is volt az altípusos polimorfizmus?
- Emlékeztető:
Person <|-- Student eseténPerson p = new Student();learn((Student)p); // helyes, learn szignatúrája: void learn(Student s) {…}payTaxes(p); // helyes, payTaxes szignatúrája: void payTaxes(Person s) {…}
Tehát a „p” tud Studentként és Personként is viselkedni.
LSPclass Car { public void doTaxiService() {...}}class Truck extends Car {...}
Car c = new Car();c.doTaxiService();c = new Truck();c.doTaxiService(); ??
Probléma általában: nem átgondolt öröklődés (UnsupportedOperationException)
ISP
ISP
DIP
Design patterns
- Előadáson néhány előkerül említés szinten- Architekturális, létrehozási, strukturális, viselkedési minták- Nem receptek, hanem ajánlások gyakran előforduló problémákra- Célszerű ezeket megismerni, a hatékonyabb munka érdekében
Szoftverarchitektúrák
- Szoftverarchitektúrának nevezzük a szoftver fejlesztése során meghozott elsődleges tervezési döntések halmazát.
- A szoftver architektúra elsődleges feladata a rendszer magasszintű felépítésének és működésének meghatározása, a komponensek és relációk kiépítése
Monolitikus architektúra
Model-nézet architektúra
Model-nézet-perzisztencia
MVC
MVC
Rendszerterv
Rendszerterv
UML use case diagram
UML package diagram
UML package diagram
UML component diagram
UML deployment diagram
UML state machine diagram
UML sequence diagram
ForrásokÁbrák, idézett szövegek: Giachetta Roberto előadásdiái
Recommended