Ugrás a tartalomhoz

SOLID

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen Csiszaralex (vitalap | szerkesztései) 2021. március 9., 13:17-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (Helyesírásellenőrzése)

Az objektumorientált programozásban a SOLID egy mozaikszó, amely az öt tervezési alapelv (Single responsibility principle, Open/closed principle, Liskov substitution principle, Interface segregation principle, Dependency inversion principle) kezdőbetűjéből áll, és célja, hogy a szoftvertervezést még érthetőbbé, rugalmasabbá és karbantarthatóbbá tegye. A SOLID-nak semmi köze a felelősségek hozzárendelésének általános mintáihoz (General Responsibility Assignment Software Patterns, GRASP). A S.O.L.I.D. alapelvek szülőatyja Robert Cecil Martin amerikai mérnök informatikus és tanácsadó, aki nem csak a „tiszta kód mozgalom” vezérszónoka, hanem többek között az Agile Manifesto egyik eredeti megfogalmazója is. Ezek az alapelvek adják a magját az agilis szoftverfejlesztésnek vagy adaptív szoftverfejlesztésnek. Az elméletét Martin Design Principles and Design Patterns[1][2] című könyvében mutatta be, de mint mozaikszó csak később Michael Feathers révén terjedt el.

Összetevők

Egyetlen felelősség elve - Single Responsibility Principle[3]
Egy osztály vagy modul egy, és csak egy felelősséggel rendelkezzen (azaz: egy oka legyen a változásra).
Nyílt/zárt elv - Open/Closed Principle[4]
Egy osztály vagy modul legyen nyílt a kiterjesztésre, de zárt a módosításra.
Liskov helyettesítési elv - Liskov substitution principle[5]
Minden osztály legyen helyettesíthető a leszármazott osztályával anélkül, hogy a program helyes működése megváltozna.
Interfész elválasztási elv - Interface segregation principle[6]
Az interfészek (kapcsolódási felületek) szétválasztásának elve: egyetlen kliens se legyen rákényszerítve arra, hogy olyan eljárásoktól függjön, amelyeket nem is használ.
Függőség megfordítási elv - Dependency inversion principle[7]
A magas szintű modulok ne függjenek az alacsony szintű moduloktól. Mindkettő absztrakcióktól függjön.

Jegyzetek

  1. Robert C. Martin: Getting a SOLID start. objectmentor.com . (Hozzáférés: 2013. augusztus 19.)
  2. Robert C. Martin: Design Principles and Design Patterns. [2015. szeptember 6-i dátummal az eredetiből archiválva].
  3. Egy felelősség alapelve Single Responsibility Principle. objectmentor.com . [2015. június 1-i dátummal az [https://hu.wikipedia.org/wiki/Egy_felelősség_alapelve eredetiből archiválva].
  4. Open/Closed Principle. objectmentor.com . [2015. szeptember 5-i dátummal az eredetiből archiválva].
  5. Liskov Substitution Principle. objectmentor.com. [2015. szeptember 5-i dátummal az eredetiből archiválva].
  6. Interface Segregation Principle. objectmentor.com , 1996 [2015. szeptember 5-i dátummal az eredetiből archiválva].
  7. Dependency Inversion Principle. objectmentor.com. [2015. szeptember 5-i dátummal az eredetiből archiválva].

Források

Fordítás

  • Ez a szócikk részben vagy egészben a SOLID című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.