Προγραμματισμός

Πώς να χρησιμοποιήσετε το μοτίβο σχεδιασμού διαμεσολαβητή στο C #

Τα σχέδια σχεδίασης χρησιμοποιούνται για την επίλυση κοινών προβλημάτων σχεδιασμού και τη μείωση των πολυπλοκότητας στον κώδικα μας. Το μοτίβο διαμεσολαβητή είναι ένα σχέδιο σχεδιασμού συμπεριφοράς που προωθεί τη χαλαρή σύζευξη μεταξύ αντικειμένων και βοηθά στην οργάνωση του κώδικα για επικοινωνίες μεταξύ αντικειμένων.

Αυτό το άρθρο παρουσιάζει μια συζήτηση για το σχέδιο σχεδιασμού του μεσολαβητή και πώς μπορεί να εφαρμοστεί χρησιμοποιώντας το C #.

Τι είναι το σχέδιο σχεδιασμού μεσολαβητή;

Φανταστείτε μια εφαρμογή στην οποία υπάρχουν πολλά αντικείμενα που επικοινωνούν μεταξύ τους. Το σχέδιο σχεδίασης μεσολαβητή είναι χρήσιμο όταν ο αριθμός των αντικειμένων αυξάνεται τόσο πολύ που καθίσταται δύσκολη η διατήρηση των αναφορών στα αντικείμενα. Ο διαμεσολαβητής είναι ουσιαστικά ένα αντικείμενο που ενσωματώνει τον τρόπο με τον οποίο ένα ή περισσότερα αντικείμενα αλληλεπιδρούν μεταξύ τους. Το μοτίβο σχεδιασμού διαμεσολαβητή ελέγχει τον τρόπο επικοινωνίας αυτών των αντικειμένων και βοηθά στη μείωση του αριθμού των εξαρτήσεων μεταξύ αυτών που πρέπει να διαχειριστείτε.

Στο σχέδιο σχεδίασης διαμεσολαβητή, τα αντικείμενα δεν επικοινωνούν απευθείας μεταξύ τους αλλά μέσω του διαμεσολαβητή. Όταν ένα αντικείμενο πρέπει να επικοινωνήσει με ένα άλλο αντικείμενο ή ένα σύνολο αντικειμένων, μεταδίδει το μήνυμα στον διαμεσολαβητή. Στη συνέχεια, ο μεσολαβητής μεταδίδει το μήνυμα σε κάθε αντικείμενο παραλήπτη σε μια μορφή που είναι κατανοητή από αυτό.

Με την εξάλειψη της άμεσης επικοινωνίας μεταξύ αντικειμένων, το σχέδιο σχεδιασμού του μεσολαβητή προάγει τη χαλαρή σύζευξη. Το άλλο πλεονέκτημα της χρήσης του μοτίβου σχεδιασμού του μεσολαβητή είναι ότι βελτιώνει την αναγνωσιμότητα και τη συντήρηση του κώδικα. Για καλό μέτρο, εδώ είναι ο επίσημος ορισμός της συμμορίας των τεσσάρων του διαμεσολαβητικού μοτίβου:

Ορίστε ένα αντικείμενο που ενσωματώνει τον τρόπο αλληλεπίδρασης ενός συνόλου αντικειμένων. Ο διαμεσολαβητής προωθεί τη χαλαρή σύζευξη, εμποδίζοντας τα αντικείμενα να μην αναφέρονται μεταξύ τους ρητά και σας επιτρέπει να διαφοροποιείτε την αλληλεπίδρασή τους ανεξάρτητα.

Σημειώστε ότι το σχέδιο σχεδίασης διαμεσολαβητή διαφέρει από το σχέδιο σχεδίασης πρόσοψης. Το μεσολαβητικό μοτίβο διευκολύνει τον τρόπο αλληλεπίδρασης ενός συνόλου αντικειμένων, ενώ το μοτίβο πρόσοψης παρέχει απλώς μια ενοποιημένη διεπαφή σε ένα σύνολο διεπαφών στην εφαρμογή. Έτσι, το μοτίβο μεσολαβητή είναι ένα μοτίβο συμπεριφοράς που ασχολείται με τη συμπεριφορά του αντικειμένου, το μοτίβο πρόσοψης είναι ένα δομικό μοτίβο που ασχολείται με τη σύνθεση του αντικειμένου.

Εφαρμογή του σχεδιασμού διαμεσολαβητή στο C #

Αλλά αρκετές από τις έννοιες — ας πάρουμε έναν κώδικα. Οι συμμετέχοντες σε αυτό το σχέδιο είναι ο μεσολαβητής, ο συγκεκριμένος μεσολαβητής και ένας ή περισσότεροι τύποι συμμετεχόντων. Ενώ ο διαμεσολαβητής είναι υπεύθυνος για τον καθορισμό της διεπαφής για την επικοινωνία με τους συμμετέχοντες, ο συγκεκριμένος διαμεσολαβητής, όπως υποδηλώνει το όνομα, εφαρμόζει τη διεπαφή διαμεσολαβητή και έχει γνώση των συμμετεχόντων. Σημειώστε ότι ο τύπος συμμετέχοντος καλείται μερικές φορές συνάδελφος. Έτσι σε ορισμένες εφαρμογές, έχετε συναδέλφους και συγκεκριμένους τύπους συναδέλφων.

Τώρα, ανατρέξτε στην ακόλουθη διεπαφή. Αυτή είναι η διεπαφή για τον μεσολαβητή που θα χρησιμοποιήσουμε σε αυτό το παράδειγμα.

δημόσια διεπαφή Imediator

    {

άκυρο AddParticipant (συμμετέχων IP)

void BroadcastMessage (μήνυμα συμβολοσειράς, αποστολέας IP)

    }

Σημειώστε ότι αυτή η διεπαφή περιέχει τη δήλωση δύο μεθόδων, Προσθήκη Συμμετέχοντα καιΜήνυμα αναμετάδοσης. Ενώ το πρώτο χρησιμοποιείται για την προσθήκη συμμετεχόντων σε μια λίστα συμμετεχόντων που διατηρείται από τοΔιαμεσολαβητής σκυροδέματος τάξη (δίνεται παρακάτω), το τελευταίο χρησιμοποιείται για τη μετάδοση μηνυμάτων στη λίστα των συμμετεχόντων.

Εδώ είναι τοΔιαμεσολαβητής σκυροδέματος τάξη. Εφαρμόζει τοΕξομοιωτής διεπαφή. Φεύγω από την εφαρμογή τουΜήνυμα αναμετάδοσης μέθοδος για να συμπληρώσετε.

δημόσια τάξη ConcreteMediator: Imediator

    {

Λίστα συμμετεχόντων = νέα λίστα ();

δημόσιο άκυρο AddParticipant (IP συμμετέχων συμμετέχων)

        {

συμμετέχοντες. Προσθήκη (συμμετέχων)

        }

public void BroadcastMessage (μήνυμα συμβολοσειράς, αποστολέας IP)

        {

// Γράψτε κώδικα εδώ για να μεταδώσετε το μήνυμα στους συμμετέχοντες

        }

    }

ο Συμμετέχων διεπαφή περιέχει τη δήλωση τουΝα στείλετε μήνυμα μέθοδος.

δημόσια διεπαφή

    {

άκυρο SendMessage (μήνυμα συμβολοσειράς).

    }

Εδώ είναι ένα παράδειγμα των συγκεκριμένων μαθημάτων. Σημειώστε ότι αυτές οι τάξεις εφαρμόζουν τοΣυμμετέχων διεπαφή.

δημόσια τάξη ConcreteParticipant1: Iparticipant

    {

προστατευμένος μεσολαβητής IMediator.

public ConcreteParticipant1 (Διαμεσολαβητής IMediator)

        {

this.mediator = μεσολαβητής;

        }

δημόσιο άκυρο SendMessage (μήνυμα συμβολοσειράς)

        {

mediator.SendMessage (μήνυμα, αυτό);

        }

    }

δημόσια τάξη ConcreteParticipant2: Iparticipant

    {

προστατευμένος μεσολαβητής IMediator.

public ConcreteParticipant2 (Διαμεσολαβητής IMediator)

        {

this.mediator = μεσολαβητής;

        }

δημόσιο άκυρο SendMessage (μήνυμα συμβολοσειράς)

        {

mediator.SendMessage (μήνυμα, αυτό);

        }

    }

Και αυτό είναι! Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να χρησιμοποιήσετε όλους τους τύπους που έχουμε δημιουργήσει μέχρι στιγμής.

static void Main (συμβολοσειρά [] args)

    {

IMediator mediator = νέο ConcreteMediator ();

IParticipant participant1 = νέο ConcreteParticipant1 (διαμεσολαβητής);

IParticipant participant2 = νέο ConcreteParticipant2 (διαμεσολαβητής);

mediator.AddParticipant (συμμετέχων1);

mediator.AddParticipant (συμμετέχων2);

participant1.SendMessage ("Αυτός είναι ο πρώτος συμμετέχων").

participant2.SendMessage ("Αυτός είναι ο δεύτερος συμμετέχων").

Console.ReadLine ();

    }

Το μοτίβο σχεδιασμού διαμεσολαβητή είναι ένα μοτίβο συμπεριφοράς που προωθεί τη χαλαρή σύζευξη με τη μεσολάβηση των επικοινωνιών μεταξύ διαφορετικών αντικειμένων. Επειδή ο διαμεσολαβητής διευκολύνει όλες τις αλληλεπιδράσεις μεταξύ αντικειμένων, αυτά τα αντικείμενα μπορούν να αλλάξουν κατά βούληση. Το πιο σημαντικό, δεν χρειάζεται να γνωρίζουν ο ένας τον άλλον. Έτσι, το μεσολαβητικό μοτίβο σάς βοηθά να γράψετε καλά δομημένο, διατηρήσιμο και εύκολα ελεγχόμενο κώδικα.