SOLID
Στην πληροφορική αντικειμενοστρεφή προγραμματισμό, το 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
- Δεν θα το χρειαστείτε
- ↑ Robert C. Martin. «Principles Of OOD». butunclebob.com. Ανακτήθηκε στις 17 Ιουλίου 2014.
- ↑ Robert C. Martin. «Getting a SOLID start». objectmentor.com. Αρχειοθετήθηκε από το πρωτότυπο στις 26 Δεκεμβρίου 2016. Ανακτήθηκε στις 19 Αυγούστου 2013.
- ↑ Sandi Metz (Μαΐου 2009). «SOLID Object-Oriented Design». Ανακτήθηκε στις 13 Αυγούστου 2019.
- ↑ 4,0 4,1 Robert C. Martin (2000). «Design Principles and Design Patterns» (PDF). objectmentor.com. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 6 Σεπτεμβρίου 2015. Ανακτήθηκε στις 14 Ιανουαρίου 2009.
- ↑ Fenton, Steve (2017). Pro TypeScript: Application-Scale JavaScript Development. σελ. 108. ISBN 9781484232491.
- ↑ «Single Responsibility Principle» (PDF). objectmentor.com. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 1 Ιουνίου 2015.
- ↑ «Open/Closed Principle» (PDF). objectmentor.com. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 5 Σεπτεμβρίου 2015.
- ↑ «Liskov Substitution Principle» (PDF). objectmentor.com. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 5 Σεπτεμβρίου 2015.
- ↑ «Interface Segregation Principle» (PDF). objectmentor.com. 1996. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 5 Σεπτεμβρίου 2015.
- ↑ «Dependency Inversion Principle» (PDF). objectmentor.com. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 5 Σεπτεμβρίου 2015.