SOLID (programare orientată pe obiecte)
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită pe 8 octombrie 2018; verificările necesită
39 de modificări .
SOLID (prescurtare pentru engleză single responsabilitate , open-closed , Liskov substitution , interface segregation and dependency inversion ) în programare este un acronim mnemonic introdus de Michael Feathers pentru primele cinci principii numite de Robert Martin [1] [2] la începutul anilor 2000 . [3] , ceea ce a însemnat cele 5 principii de bază ale programării și proiectării orientate pe obiecte .
Pentru ce sunt principiile SOLID?
La crearea sistemelor software, utilizarea principiilor SOLID contribuie la crearea unui sistem care va fi ușor de întreținut și extins în timp [3] . Principiile SOLID sunt linii directoare care pot fi aplicate și în timpul lucrului la software-ul existent pentru a-l îmbunătăți, cum ar fi eliminarea „ codului mirositor ”.
Strategiile de dezvoltare agile și adaptive [3] implică scrierea codului în conformitate cu principiile SOLID.
Principii
Următoarele 5 principii SOLIDE vă ajută să
scăpați de „semnele unui proiect prost” [4] :
Iniţială
|
Reprezintă [1]
|
Titlul [4] , concept
|
S
|
SRP [5]
|
principiul responsabilitatii unice
Trebuie definit un singur scop pentru fiecare clasă. Toate resursele necesare implementării sale ar trebui să fie încapsulate în această clasă și subordonate numai acestei sarcini.
|
O
|
OCP [6]
|
Principiul deschiderii/apropierii (principiul deschis-închis)
„Entitățile software... ar trebui să fie deschise pentru extindere, dar închise pentru modificare”.
|
L
|
LSP [7]
|
Principiul substituției Liskov
„funcțiile care folosesc un tip de bază ar trebui să poată folosi subtipuri ale tipului de bază fără să știe acest lucru.” Vezi și programarea contractelor .
|
eu
|
ISP [8]
|
principiul segregării interfeței
„multe interfețe specifice clientului sunt mai bune decât o interfață de uz general” [9] .
|
D
|
DIP [10]
|
Principiul inversării dependenței
„Dependența de abstracții. Nu există dependență de ceva anume” [9] .
|
Vezi și
Note
- ↑ 1 2 Martin, Robert (Unchiul Bob). Principiile O.O.D. butunclebob.com. Preluat la 3 mai 2016. Arhivat din original la 25 octombrie 2016. (nedefinit) (rețineți referirea la „primele cinci principii”, adică articolul nu folosește acronimul.)
- ↑ Martin, Robert (Unchiul Bob). Obținerea unui început SOLID . objectmentor.com. Preluat la 3 mai 2016. Arhivat din original pe 26 decembrie 2016. (nedefinit)
- ↑ 1 2 3 Sandi Metz (Universitatea Duke). SOLID Design orientat pe obiecte (link nu este disponibil) . Preluat la 3 mai 2016. Arhivat din original la 29 martie 2014. (nedefinit) Vorbind la Conferința Gotham Ruby 2009 din mai 2009.
- ↑ 1 2 Robert S. Martin, Mika Martin. Principii, modele și tehnici de dezvoltare agilă în C#. - Sankt Petersburg. : Simbol-plus, 2011. - S. 8. - 768 p. - ISBN 978-5-93286-197-4 .
- ↑ Principiul responsabilității unice . Arhivat din original la 1 iunie 2015. (nedefinit)
- ↑ Principiul deschis/închis . Arhivat din original pe 5 septembrie 2015. (nedefinit)
- ↑ Principiul substituției Liskov . Arhivat din original pe 5 septembrie 2015. (nedefinit)
- ↑ Principiul de segregare a interfeței (1996). Arhivat din original pe 5 septembrie 2015. (nedefinit)
- ↑ 1 2 Martin, Robert (Unchiul Bob). Principii de proiectare și modele de proiectare . objectmentor.com (2000). Consultat la 14 ianuarie 2009. Arhivat din original la 6 septembrie 2015. (nedefinit)
- ↑ Principiul inversării dependenței . Arhivat din original pe 5 septembrie 2015. (nedefinit)
Literatură
- Robert S. Martin, James W. Newkirk, Robert S. Koss. Dezvoltare rapidă de software. Principii, exemple, practică. - Williams, 2004, ISBN 5-8459-0558-3 , ISBN 0-13-597444-5 .
- Martin R., Martin M. Principii, modele și tehnici agile în C#. - Symbol Plus , 2011 _ _ _ _ _
- Martin, R. Arhitectură curată. Arta dezvoltării software. = Arhitectură curată. Ghidul unui artizan pentru structura și designul software-ului. - Peter, 2018. - ISBN 978-5-4461-0772-8 .
Link -uri