Middle
Ποιες σχεδιαστικές προτυπώσεις γνωρίζετε;
sobes.tech AI
Απάντηση από AI
Δημιουργοί:
- Μέθοδος Εργοστασίου (Factory Method): Ορίζει μια διεπαφή για τη δημιουργία ενός αντικειμένου, αλλά επιτρέπει στις υποκλάσεις να αποφασίζουν ποια κλάση να δημιουργήσουν.
- Αφηρημένο Εργοστάσιο (Abstract Factory): Παρέχει μια διεπαφή για τη δημιουργία οικογενειών αλληλοσυνδεδεμένων ή εξαρτώμενων αντικειμένων χωρίς να καθορίζει τις συγκεκριμένες κλάσεις τους.
- Κατασκευαστής (Builder): Διαχωρίζει την κατασκευή ενός πολύπλοκου αντικειμένου από την παρουσίασή του, επιτρέποντας στην ίδια διαδικασία κατασκευής να δημιουργεί διαφορετικές παρουσιάσεις.
- Πρωτότυπο (Prototype): Δημιουργεί νέα αντικείμενα αντιγράφοντας ένα υπάρχον αντίγραφο.
- Μοναδικό (Singleton): Διασφαλίζει ότι μια κλάση έχει μόνο ένα αντίγραφο και παρέχει μια παγκόσμια πρόσβαση σε αυτό.
Δομικά:
- Προσαρμογέας (Adapter): Μετατρέπει το διεπαφή μιας κλάσης σε μια άλλη που αναμένουν οι πελάτες.
- Γέφυρα (Bridge): Διαχωρίζει την αφαιρετικότητα από την υλοποίησή της ώστε να μπορούν να αλλάζουν ανεξάρτητα.
- Σύνθετο (Composite): Συνθέτει αντικείμενα σε δέντρα δομές για να αναπαριστά ιεραρχίες μέρος-όλο. Επιτρέπει στους πελάτες να εργάζονται με μεμονωμένα αντικείμενα και τις συνθέσεις τους ομοιόμορφα.
- Διακοσμητής (Decorator): Προσθέτει δυναμικά νέες ευθύνες σε ένα αντικείμενο. Είναι μια ευέλικτη εναλλακτική λύση στην υποκλάση για την επέκταση της λειτουργικότητας.
- Εξωραϊσμός (Facade): Παρέχει μια ενοποιημένη διεπαφή σε ένα σύνολο διεπαφών υποσυστημάτων. Κάνει το υποσύστημα πιο εύχρηστο.
- Flyweight (Flyweight): Χρησιμοποιείται για την αποτελεσματική διαμοιρασμό μεγάλου αριθμού παρόμοιων αντικειμένων.
- Προξενιό (Proxy): Παρέχει ένα αντικείμενο αντικατάστασης που ελέγχει την πρόσβαση σε ένα άλλο αντικείμενο.
Συμπεριφορικά:
- Αλυσίδα Ευθύνης (Chain of Responsibility): Επιτρέπει την προώθηση αιτημάτων διαδοχικά μέσω μιας αλυσίδας χειριστών. Κάθε χειριστής αποφασίζει αν θα επεξεργαστεί το αίτημα ή θα το προωθήσει στον επόμενο.
- Εντολή (Command): Encapsulates a request as an object, allowing clients to parameterize objects with different requests, queue or log requests, and support undo operations.
- Διαδρομέας (Iterator): Παρέχει έναν τρόπο διαδοχικής πρόσβασης στα στοιχεία ενός σύνθετου αντικειμένου χωρίς να αποκαλύπτει την εσωτερική του δομή.
- Μεσολαβητής (Mediator): Ορίζει ένα αντικείμενο που ενσωματώνει το πώς αλληλεπιδρούν ένα σύνολο αντικειμένων. Προάγει τον ασθενή δεσμό, αποτρέποντας τις άμεσες αναφορές μεταξύ αντικειμένων.
- Memento (Memento): Καταγράφει και εξωτερικεύει την εσωτερική κατάσταση ενός αντικειμένου χωρίς να παραβιάζει την εν encapsulation, ώστε το αντικείμενο να μπορεί να επανέλθει σε αυτήν την κατάσταση αργότερα.
- Παρατηρητής (Observer): Ορίζει μια σχέση "ένα προς πολλά" μεταξύ αντικειμένων, έτσι ώστε όταν η κατάσταση ενός αντικειμένου αλλάζει, όλα τα εξαρτώμενα από αυτό ενημερώνονται και ανανεώνονται αυτόματα.
- Κατάσταση (State): Επιτρέπει σε ένα αντικείμενο να αλλάζει τη συμπεριφορά του όταν η εσωτερική του κατάσταση αλλάζει. Φαίνεται ότι το αντικείμενο αλλάζει κλάση.
- Στρατηγική (Strategy): Ορίζει μια οικογένεια αλγορίθμων, encapsulates each, and makes them interchangeable. Allows the algorithm to vary independently from clients that use it.
- Μέθοδος Πρότυπο (Template Method): Ορίζει το σκελετό ενός αλγορίθμου σε μια λειτουργία, αφήνοντας ορισμένα βήματα στις υποκλάσεις. Επιτρέπει στις υποκλάσεις να υπερκαλύπτουν ορισμένα βήματα του αλγορίθμου χωρίς να αλλάζουν τη δομή του.
- Επισκέπτης (Visitor): Αντιπροσωπεύει μια λειτουργία που πρέπει να εκτελεστεί πάνω σε στοιχεία μιας δομής αντικειμένων. Επιτρέπει τον ορισμό μιας νέας λειτουργίας χωρίς να αλλάξει τις κλάσεις των στοιχείων που επεξεργάζεται.