Ohjelmointi

Kuinka käyttää välittäjän suunnittelukuviota C #: ssä

Suunnittelumalleja käytetään yleisten suunnitteluongelmien ratkaisemiseen ja koodin monimutkaisuuden vähentämiseen. Välittäjämalli on käyttäytymissuunnittelumalli, joka edistää löyhää kytkentää esineiden välillä ja auttaa järjestämään koodin esineiden väliseen viestintään.

Tässä artikkelissa käsitellään sovittelijan suunnittelumallia ja miten se voidaan toteuttaa käyttämällä C #: ta.

Mikä on välittäjän suunnittelumalli?

Kuvittele sovellus, jossa on monia esineitä, jotka ovat yhteydessä toisiinsa. Välittäjän suunnittelumalli on hyödyllinen, kun esineiden määrä kasvaa niin suureksi, että on vaikea ylläpitää viittauksia esineisiin. Välittäjä on olennaisesti esine, joka kapseloi kuinka yksi tai useampi esine on vuorovaikutuksessa toistensa kanssa. Välittäjän suunnittelumalli ohjaa näiden objektien viestintää ja auttaa vähentämään hallittavien riippuvuuksien määrää niiden välillä.

Sovittelijan suunnittelumallissa esineet eivät ole yhteydessä toisiinsa suoraan, vaan välittäjän kautta. Kun kohteen on oltava yhteydessä toiseen esineeseen tai joukkoihin esineitä, se lähettää viestin välittäjälle. Sitten sovittelija lähettää viestin jokaiselle vastaanottajaobjektille sille ymmärrettävässä muodossa.

Poistamalla suoran viestinnän esineiden välillä, välittäjän suunnittelumalli edistää löyhää kytkentää. Välittäjän suunnittelumallin käytön toinen etu on, että se parantaa koodin luettavuutta ja ylläpidettävyyttä. Hyvin mitattuna tässä on virallinen neljän ryhmän määritelmä sovittelijan mallista:

Määritä objekti, joka kapseloi kuinka joukko esineitä on vuorovaikutuksessa. Välittäjä edistää löyhää kytkentää estämällä esineitä viittaamasta toisiinsa nimenomaisesti, ja sen avulla voit muuttaa niiden vuorovaikutusta itsenäisesti.

Huomaa, että välittäjän suunnittelukuvio eroaa julkisivun kuviosta. Välittäjäkuvio helpottaa esinejoukon vuorovaikutusta, kun taas julkisivumalli tarjoaa yksinkertaisesti yhtenäisen käyttöliittymän sovelluksen rajapintoihin. Täten välittäjäkuvio on käyttäytymismalli, joka käsittelee esineiden käyttäytymistä, julkisivumalli on rakennemalli, joka käsittelee esineiden koostumusta.

Sovittelijan suunnittelumallin toteuttaminen C #: ssä

Mutta tarpeeksi käsitteistä - päästään johonkin koodiin. Tämän suunnittelun osallistujat ovat sovittelija, konkreettinen välittäjä ja yksi tai useampi osallistujatyyppi. Vaikka sovittelija on vastuussa rajapinnan määrittämisestä osallistujille kommunikoimiseksi, konkreettinen sovittelija, kuten nimestä voi päätellä, toteuttaa sovittelijan käyttöliittymän ja tuntee osallistujia. Huomaa, että osallistujatyyppiä kutsutaan joskus kollegaksi. Joten joissakin toteutuksissa sinulla on kollegatyyppejä ja konkreettisia kollegatyyppejä.

Katso nyt seuraava käyttöliittymä. Tämä on käyttöliittymä välittäjälle, jota käytämme tässä esimerkissä.

julkinen käyttöliittymä Imediator

    {

void AddParticipant (IP-osallistujan osallistuja);

void BroadcastMessage (merkkijonoviesti, IP-osanottajan lähettäjä);

    }

Huomaa, että tämä käyttöliittymä sisältää kahden menetelmän ilmoituksen, AddParticipant jaYleislähetysviesti. Vaikka ensimmäistä käytetään osallistujien lisäämiseen osallistujien luetteloon, jota ylläpitääBetoni Välittäjä luokassa (annettu alla), jälkimmäistä käytetään lähettämään viestejä osallistujien luetteloon.

Tässä onBetoni Välittäjä luokassa. Se toteuttaaIMediaattori käyttöliittymä. JätänYleislähetysviesti tapa täyttää.

julkisen luokan ConcreteMediator: Imediator

    {

Listaosallistujat = uusi Lista ();

public void AddParticipant (IParticipant-osallistuja)

        {

osallistujia.Lisää (osallistuja);

        }

public void BroadcastMessage (merkkijono viesti, IP-osanottajan lähettäjä)

        {

// Kirjoita koodi tähän lähettääksesi viestin osallistujille

        }

    }

Iosallistuja käyttöliittymä sisältääLähetä viesti menetelmä.

julkinen käyttöliittymä Iparticipant

    {

void SendMessage (merkkijono);

    }

Tässä on esimerkki konkreettisista osallistujaluokista. Huomaa, että nämä luokat toteuttavatIosallistuja käyttöliittymä.

julkinen luokka ConcreteParticipant1: Iparticipant

    {

suojattu IMediator-välittäjä;

public ConcreteParticipant1 (IMediator sovittelija)

        {

tämä.välittäjä = välittäjä;

        }

public void SendMessage (merkkijono viesti)

        {

välittäjä.SendMessage (viesti, tämä);

        }

    }

julkinen luokka ConcreteParticipant2: Iparticipant

    {

suojattu IMediator-välittäjä;

public ConcreteParticipant2 (IMediator sovittelija)

        {

tämä.välittäjä = välittäjä;

        }

public void SendMessage (merkkijono viesti)

        {

välittäjä.SendMessage (viesti, tämä);

        }

    }

Ja siinä se! Seuraava koodinpätkä osoittaa, kuinka voit käyttää kaikkia tähän mennessä rakentamiamme tyyppejä.

staattinen void Main (merkkijono [] args)

    {

IMediator mediator = uusi ConcreteMediator ();

IPosallistuja1 = uusi ConcreteParticipant1 (välittäjä);

IPosallistuja2 = uusi ConcreteParticipant2 (välittäjä);

sovittelija.AddParticipant (osallistuja1);

sovittelija.AddParticipant (osallistuja2);

osallistuja1.SendMessage ("Tämä on ensimmäinen osallistuja");

osaleja2.SendMessage (“Tämä on toinen osallistuja”);

Console.ReadLine ();

    }

Välittäjän suunnittelumalli on käyttäytymismalli, joka edistää löyhää kytkentää välittämällä erilaisten esineiden välistä viestintää. Koska välittäjä helpottaa kaikkea vuorovaikutusta esineiden välillä, näitä esineitä voidaan muuttaa haluamallaan tavalla. Mikä tärkeintä, heidän ei tarvitse tuntea toisiaan. Siten välittäjämalli auttaa sinua kirjoittamaan hyvin jäsenneltyä, ylläpidettävää ja helposti testattavaa koodia.

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