Sobes.tech
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): Αντιπροσωπεύει μια λειτουργία που πρέπει να εκτελεστεί πάνω σε στοιχεία μιας δομής αντικειμένων. Επιτρέπει τον ορισμό μιας νέας λειτουργίας χωρίς να αλλάξει τις κλάσεις των στοιχείων που επεξεργάζεται.