Στην πληροφορική αντικειμενοστρεφή προγραμματισμό, το SOLID είναι ένα μνημονικό ακρωνύμιο για πέντε αρχές σχεδιασμού που αποσκοπούν στο να κάνουν τα σχέδια λογισμικού πιο κατανοητά, ευέλικτα και διατηρήσιμα . Δεν σχετίζεται με τις αρχές σχεδιασμού λογισμικού GRASP . Οι αρχές είναι ένα υποσύνολο πολλών αρχών που προωθούνται από τον Αμερικανό μηχανικό και εκπαιδευτή Robert C. Martin . [1] [2] [3] Αν και εφαρμόζονται σε οποιονδήποτε αντικειμενοστρεφή σχεδιασμό, οι αρχές SOLID μπορούν επίσης να αποτελέσουν μια βασική φιλοσοφία για μεθοδολογίες όπως η ευέλικτη ανάπτυξη ή η προσαρμοστική ανάπτυξη λογισμικού . Η θεωρία των αρχών SOLID εισήχθη από τον Martin στο βιβλίο του 2000 Principles and Design Patterns, [4] αν και το SOLID αρκτικόλεξο εισήχθη αργότερα από τον Michael Feathers. [5]

Αρχή της ενιαίας ευθύνης [6]
Μια κλάση θα πρέπει να έχει μόνο μία ευθύνη, δηλαδή, μόνο οι αλλαγές σε ένα μέρος των προδιαγραφών του λογισμικού θα πρέπει να μπορούν να επηρεάσουν τις προδιαγραφές της κλάσης.
Ανοιχτή - κλειστή αρχή [7]
"Οντότητες λογισμικού   ... πρέπει να είναι ανοιχτό για επέκταση, αλλά κλειστό για τροποποίηση. "
Αρχή υποκατάστασης Liskov [8]
"Τα αντικείμενα σε ένα πρόγραμμα πρέπει να αντικαθίστανται με εμφανίσεις των υποτύπων τους χωρίς να αλλάζουν την ορθότητα αυτού του προγράμματος." Δείτε επίσης το σχέδιο με σύμβαση .
Αρχή διαχωρισμού διεπαφής [9]
"Πολλές διεπαφές για συγκεκριμένους πελάτες είναι καλύτερες από μια διεπαφή γενικού σκοπού." [4]
Αρχή αντιστροφής της εξάρτησης [10]
Κάποιος πρέπει να "εξαρτάται από αφαιρέσεις, [όχι] σκυροδέματα".
  • Επαναχρησιμοποίηση κώδικα
  • Κληρονομικότητα (αντικειμενοστρεφής προγραμματισμός)
  • Αρχές συσκευασίας
  • Μην επαναλάβετε τον εαυτό σας
  • GRASP (αντικειμενοστραφής σχεδίαση)
  • Αρχή KISS
  • Δεν θα το χρειαστείτε
  1. Robert C. Martin. «Principles Of OOD». butunclebob.com. Ανακτήθηκε στις 17 Ιουλίου 2014. 
  2. Robert C. Martin. «Getting a SOLID start». objectmentor.com. Ανακτήθηκε στις 19 Αυγούστου 2013. 
  3. Sandi Metz (Μαΐου 2009). «SOLID Object-Oriented Design». Ανακτήθηκε στις 13 Αυγούστου 2019. 
  4. 4,0 4,1 Robert C. Martin (2000). «Design Principles and Design Patterns» (PDF). objectmentor.com. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 6 Σεπτεμβρίου 2015. Ανακτήθηκε στις 14 Ιανουαρίου 2009. 
  5. Fenton, Steve (2017). Pro TypeScript: Application-Scale JavaScript Development. σελ. 108. ISBN 9781484232491. 
  6. «Single Responsibility Principle» (PDF). objectmentor.com. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 1 Ιουνίου 2015. 
  7. «Open/Closed Principle» (PDF). objectmentor.com. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 5 Σεπτεμβρίου 2015. 
  8. «Liskov Substitution Principle» (PDF). objectmentor.com. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 5 Σεπτεμβρίου 2015. 
  9. «Interface Segregation Principle» (PDF). objectmentor.com. 1996. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 5 Σεπτεμβρίου 2015. 
  10. «Dependency Inversion Principle» (PDF). objectmentor.com. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 5 Σεπτεμβρίου 2015.