Table of Contents
Το μοτίβο διακοσμητή είναι ένα ισχυρό σχέδιο σχεδιασμού στη μηχανική λογισμικού που επιτρέπει στους προγραμματιστές να προσθέσουν νέα λειτουργικότητα στα υπάρχοντα αντικείμενα χωρίς να τροποποιήσουν τον αρχικό τους κώδικα. Αυτή η προσέγγιση είναι ιδιαίτερα χρήσιμη όταν χρειάζεται να προσθέσετε την καταγραφή στις μεθόδους υπηρεσιών χωρίς να αλλοιώσετε τον πηγαίο κώδικα τους, εξασφαλίζοντας καθαρές και διατηρητέες βάσεις κώδικα.
Κατανόηση του Μοτίβου Διακοσμητή
Το μοτίβο του διακοσμητή περιλαμβάνει τη δημιουργία μιας κατηγορίας περιτυλίγματος που υλοποιεί την ίδια διεπαφή με την αρχική υπηρεσία. Αυτό το περιτύλιγμα αντιπρόσωποι καλεί στην αρχική υπηρεσία, αλλά προσθέτει επιπλέον συμπεριφορά -όπως η καταγραφή ⁇ πριν ή μετά την εκτέλεση της μεθόδου.
Εφαρμογή καταγραφής με το μοτίβο διακόσμησης
Υποθέστε ότι έχετε μια διεπαφή υπηρεσιών:
public interface DataService {
void fetchData();
}
Μπορείτε να δημιουργήσετε μια συγκεκριμένη υλοποίηση:
public class RealDataService implements DataService {
@Override
public void fetchData() {
// Fetch data from a database or external API
}
}
Στη συνέχεια, δημιουργήστε μια τάξη διακοσμητών που προσθέτει την καταγραφή:
public class LoggingDataServiceDecorator implements DataService {
private final DataService wrappedService;
public LoggingDataServiceDecorator(DataService service) {
this.wrappedService = service;
}
@Override
public void fetchData() {
System.out.println("Fetching data started.");
wrappedService.fetchData();
System.out.println("Fetching data completed.");
}
}
Χρήση του Διακοσμητή
Για να προσθέσετε την καταγραφή, κάντε άμεση σύνδεση του διακοσμητή με την υπάρχουσα υπηρεσία σας:
DataService service = new RealDataService();
DataService loggedService = new LoggingDataServiceDecorator(service);
// Now, calling fetchData will include logging
loggedService.fetchData();
Οφέλη του Μοτίβο Διακοσμητή
- Βελτιώνει την υπάρχουσα λειτουργικότητα χωρίς να τροποποιεί τον αρχικό κώδικα
- Προώθηση της επαναχρησιμοποίησης κώδικα και του διαχωρισμού των ανησυχιών
- Διευκολύνει την προσθήκη πολλαπλών στρωμάτων συμπεριφοράς δυναμικά
Χρησιμοποιώντας το σχέδιο διακοσμητή για την καταγραφή είναι μια κομψή λύση που διατηρεί καθαρό κώδικα και τηρεί την αρχή ανοικτή-κλειστή, καθιστώντας τις εφαρμογές σας ευκολότερη να επεκταθεί και να διατηρήσει.