SOLID Software design
SOLID Elvek
- __S__ingle responsibility
- __O__pen Closed Principle
- __L__Iskov Substitution Principle
- __I__nterface Segregation Principle
- __D__ependency Inversion Principle
Single responsibility
- Egy felelősségi kör
- Ne legyenek "mindenható" objektumok
- Több objektum ne osztozzon egy felelősségi körön
Open Closed Principle
- Egy osztály legyen nyílt a kiterjesztésre, de zárt a módosításra
- A funkcionalitás bővítéséhez ne kelljen az osztályt módosítani
- Kompozíciókkal és leszármazással megoldható
Liskov Substitution Principle
- A leszármazott osztály őrizze meg az ősosztály viselkedését
- Ha az ősosztály típus helyére a leszármazott osztályt tesszük, a funkcionalitás maradjon meg
- Ezzel "teljesíti", amit a típustól elvárunk
Interface Segregation Principle
- Egyetlen kliens se függjön olyan eljárásoktól, amiket nem is használ
- Az erre a célra készített interfészek jellemzően az '
able' végződést kapja (Comparable, Iterable)
Dependency Inversion Principle
- Magas szintű modul ne függjön alacsony szinttű moduloktól
- Mindkettő absztrakcióktól függjön