27
Objektumelvű tervezés alapjai

Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

Objektumelvű tervezés alapjai

Page 2: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

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.

Page 3: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

SRP

Page 4: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

SRP

Page 5: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

OCP

Page 6: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

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.

Page 7: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

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)

Page 8: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

ISP

Page 9: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

ISP

Page 10: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

DIP

Page 11: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

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

Page 12: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

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

Page 13: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

Monolitikus architektúra

Page 14: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

Model-nézet architektúra

Page 15: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

Model-nézet-perzisztencia

Page 16: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

MVC

Page 17: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

MVC

Page 18: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

Rendszerterv

Page 19: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

Rendszerterv

Page 20: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

UML use case diagram

Page 21: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

UML package diagram

Page 22: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

UML package diagram

Page 23: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

UML component diagram

Page 24: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

UML deployment diagram

Page 25: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

UML state machine diagram

Page 26: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

UML sequence diagram

Page 27: Objektumelvű tervezés alapjai · Single responsibility principle: Egy programegység csak egyvalamiért felelhet. Open/closed principle: a programegységek nyitottak a kiterjesztésre,

ForrásokÁbrák, idézett szövegek: Giachetta Roberto előadásdiái