Programiranje

Kako uporabiti vzorec oblikovanja mediatorja v C #

Vzorci oblikovanja se uporabljajo za reševanje pogostih problemov oblikovanja in zmanjšanje zapletenosti naše kode. Vzorec mediatorja je vedenjski vzorec oblikovanja, ki spodbuja ohlapno povezovanje med predmeti in pomaga organizirati kodo za medpredmetne komunikacije.

Ta članek predstavlja razpravo o vzorcu oblikovanja mediatorja in kako ga je mogoče uporabiti s pomočjo C #.

Kakšen je vzorec oblikovanja mediatorja?

Predstavljajte si aplikacijo, v kateri je veliko predmetov, ki komunicirajo med seboj. Vzorec oblikovanja mediatorja je koristen, ko število predmetov naraste tako veliko, da je težko ohraniti sklice na predmete. Mediator je v bistvu predmet, ki zajema, kako eden ali več predmetov medsebojno sodeluje. Vzorec zasnove mediatorja nadzoruje, kako ti predmeti komunicirajo, in pomaga zmanjšati število odvisnosti med njimi, ki jih morate upravljati.

V vzorcu oblikovanja mediatorja predmeti med seboj ne komunicirajo neposredno, temveč prek mediatorja. Ko mora objekt komunicirati z drugim predmetom ali nizom predmetov, sporočilo posreduje posredniku. Nato posrednik sporočilo pošlje vsakemu prejemniškemu objektu v obliki, ki mu je razumljiva.

Z odpravo neposredne komunikacije med predmeti vzorec oblikovanja mediatorja spodbuja ohlapno spenjanje. Druga prednost uporabe vzorca zasnove mediatorja je, da izboljša berljivost in vzdrževanje kode. Za dober ukrep je tu uradna definicija vzorca mediatorja Gang of Four:

Določite objekt, ki prikazuje, kako nabor predmetov deluje. Mediator spodbuja ohlapno spenjanje tako, da se predmeti ne izrecno sklicujejo drug na drugega, in vam omogoča, da neodvisno spreminjate njihovo interakcijo.

Upoštevajte, da se vzorec oblikovanja mediatorja razlikuje od vzorca fasade. Vzorec posrednika olajša interakcijo nabora predmetov, medtem ko fasadni vzorec preprosto nudi poenoten vmesnik naboru vmesnikov v aplikaciji. Vzorec posrednika je torej vedenjski vzorec, ki se ukvarja z vedenjem objektov, fasadni vzorec pa je strukturni vzorec, ki obravnava sestavo predmeta.

Izvajanje vzorca oblikovanja mediatorja v C #

A dovolj konceptov - pojdimo v neko kodo. Udeleženci v tej zasnovi so mediator, konkretni mediator in ena ali več vrst udeležencev. Medijator je sicer odgovoren za določitev vmesnika za komunikacijo z udeleženci, konkretni mediator pa, kot že ime pove, izvaja vmesnik za mediator in pozna udeležence. Upoštevajte, da se tip udeleženca včasih imenuje kolega. Torej imate v nekaterih izvedbah vrste kolegov in konkretnih kolegov.

Zdaj glejte naslednji vmesnik. To je vmesnik za mediator, ki ga bomo uporabili v tem primeru.

javni vmesnik Imediator

    {

void AddParticipant (udeleženec IParticipant);

void BroadcastMessage (sporočilo v nizu, pošiljatelj IParticipant);

    }

Upoštevajte, da ta vmesnik vsebuje izjavo dveh metod, AddParticipant inBroadcastMessage. Medtem ko se prvi uporablja za dodajanje udeležencev na seznam udeležencev, ki ga vodiConcreteMediator razred (naveden spodaj), slednji se uporablja za oddajanje sporočil na seznam udeležencev.

Tukaj jeConcreteMediator razred. IzvajaIMediator vmesnik. Zapuščam izvajanjeBroadcastMessage način za izpolnitev.

javni razred ConcreteMediator: Imediator

    {

Udeleženci seznama = nov seznam ();

javna praznina AddParticipant (udeleženec IParticipant)

        {

udeleženci.Dodaj (udeleženec);

        }

public void BroadcastMessage (sporočilo v nizu, pošiljatelj IParticipant)

        {

// Tukaj napišite kodo, da boste sporočilo poslali udeležencem

        }

    }

The Udeleženec vmesnik vsebuje izjavoPošlji sporočilo metoda.

javni vmesnik Iparticipant

    {

void SendMessage (sporočilo v nizu);

    }

Tu je primer konkretnih razredov udeležencev. Upoštevajte, da ti razredi izvajajoUdeleženec vmesnik.

javni razred ConcreteParticipant1: Iparticipant

    {

zaščiten posrednik IMediator;

javni ConcreteParticipant1 (posrednik IMediator)

        {

this.mediator = mediator;

        }

public void SendMessage (sporočilo v nizu)

        {

mediator.SendMessage (sporočilo, to);

        }

    }

javni razred ConcreteParticipant2: Iparticipant

    {

zaščiten posrednik IMediator;

javni ConcreteParticipant2 (posrednik IMediator)

        {

this.mediator = mediator;

        }

public void SendMessage (sporočilo v nizu)

        {

mediator.SendMessage (sporočilo, to);

        }

    }

In to je to! Naslednji delček kode prikazuje, kako lahko uporabite vse vrste, ki smo jih zgradili do zdaj.

statična praznina Main (string [] args)

    {

IMediator mediator = nov ConcreteMediator ();

Udeleženec IP1 = novi ConcreteParticipant1 (mediator);

Udeleženec IP2 = nov ConcreteParticipant2 (mediator);

mediator.AddParticipant (udeleženec1);

mediator.AddParticipant (udeleženec2);

участник1.SendMessage (“To je prvi udeleženec”);

участник2.SendMessage (“To je drugi udeleženec”);

Console.ReadLine ();

    }

Vzorec oblikovanja mediatorja je vedenjski vzorec, ki spodbuja ohlapno spenjanje s posredovanjem komunikacije med različnimi predmeti. Ker posrednik olajša vse interakcije med predmeti, jih je mogoče poljubno spreminjati. Najpomembneje pa je, da jim ni treba imeti nobenega znanja. Vzorec posrednika vam tako pomaga pri pisanju dobro strukturirane, vzdrževalne in lahko preizkusljive kode.

$config[zx-auto] not found$config[zx-overlay] not found