Programmēšana

Kā izmantot starpnieka dizaina modeli C #

Dizaina modeļi tiek izmantoti, lai atrisinātu parastās dizaina problēmas un samazinātu mūsu kodeksa sarežģītību. Starpnieka modelis ir uzvedības dizaina modelis, kas veicina vaļīgu saikni starp objektiem un palīdz sakārtot kodu starp objektu saziņai.

Šajā rakstā ir sniegta diskusija par starpnieka dizaina modeli un to, kā to var īstenot, izmantojot C #.

Kāds ir starpnieka dizaina modelis?

Iedomājieties programmu, kurā ir daudz objektu, kas savstarpēji sazinās. Starpnieka dizaina modelis ir noderīgs, ja objektu skaits pieaug tik liels, ka ir grūti saglabāt atsauces uz objektiem. Starpnieks būtībā ir objekts, kas ietver to, kā viens vai vairāki objekti mijiedarbojas viens ar otru. Starpnieka dizaina modelis kontrolē to, kā šie objekti sazinās, un palīdz samazināt to atkarību skaitu, kuras jums jāpārvalda.

Starpnieka dizaina modelī objekti savstarpēji nesazinās tieši, bet caur starpnieku. Kad objektam ir nepieciešams sazināties ar citu objektu vai objektu kopu, tas nosūta ziņojumu starpniekam. Tad starpnieks nosūta ziņojumu katram uztvērēja objektam viņam saprotamā formā.

Novēršot tiešo komunikāciju starp objektiem, starpnieka dizaina modelis veicina brīvu savienojumu. Vēl viens starpnieka dizaina modeļa izmantošanas ieguvums ir tas, ka tas uzlabo koda lasāmību un uzturēšanu. Labi, šeit ir oficiālā četru bandu definīcija starpnieka modelim:

Definējiet objektu, kas ietver objektu kopas mijiedarbību. Starpnieks veicina brīvu savienošanu, novēršot objektu skaidru atsaukšanos uz otru, un tas ļauj neatkarīgi mainīt to mijiedarbību.

Ņemiet vērā, ka starpnieka dizaina modelis atšķiras no fasādes dizaina modeļa. Mediatora modelis atvieglo objektu kopas mijiedarbību, savukārt fasādes modelis vienkārši nodrošina vienotu saskarni lietojumprogrammu saskarņu kopumam. Tādējādi starpnieka modelis ir uzvedības modelis, kas nodarbojas ar objekta uzvedību, fasādes modelis ir strukturāls modelis, kas nodarbojas ar objekta sastāvu.

Starpnieka dizaina modeļa ieviešana C #

Bet pietiek ar jēdzieniem - iedziļināmies kādā kodā. Šī dizaina dalībnieki ir starpnieks, konkrēts starpnieks un viens vai vairāki dalībnieku veidi. Kamēr starpnieks ir atbildīgs par saskarnes noteikšanu saziņai ar dalībniekiem, konkrētais starpnieks, kā norāda nosaukums, īsteno starpnieka saskarni un viņam ir zināšanas par dalībniekiem. Ņemiet vērā, ka dalībnieka veidu dažreiz sauc par kolēģi. Tāpēc dažos gadījumos jums ir kolēģu un konkrētu kolēģu tipi.

Tagad skatiet šo saskarni. Šī ir saskarne starpniekam, kuru mēs izmantosim šajā piemērā.

publiskā saskarne

    {

void AddParticipant (IParticipant dalībnieks);

void BroadcastMessage (virknes ziņojums, IPparticipant sūtītājs);

    }

Ņemiet vērā, ka šajā saskarnē ir divu metožu deklarācija, AddParticipant unBroadcastMessage. Kamēr pirmais tiek izmantots, lai dalībniekus pievienotu dalībnieku sarakstam, kuru uzturBetonsMediators klase (dota zemāk), pēdējo izmanto ziņojumu pārraidīšanai dalībnieku sarakstā.

Šeit irBetonsMediators klasē. Tas īstenoIMediators interfeiss. Es pametu programmas ieviešanuBroadcastMessage metodi, kuru varat aizpildīt.

sabiedrības klase ConcreteMediator: Imediator

    {

Saraksta dalībnieki = jauns Saraksts ();

public void AddParticipant (IParticipant dalībnieks)

        {

dalībnieki.Pievienot (dalībnieks);

        }

public void BroadcastMessage (virknes ziņojums, IP dalībnieka sūtītājs)

        {

// Uzrakstiet kodu šeit, lai pārraidītu ziņojumu dalībniekiem

        }

    }

The IPdalībnieks saskarne satur deklarācijuSūtīt ziņu metodi.

publiskā saskarne

    {

void SendMessage (virknes ziņojums);

    }

Šeit ir konkrētu dalībnieku nodarbību piemērs. Ņemiet vērā, ka šīs klases īstenoIPdalībnieks interfeiss.

publiskā klase ConcreteParticipant1: Iparticipant

    {

aizsargāts IMediator starpnieks;

public ConcreteParticipant1 (IMediator mediator)

        {

tas.starpnieks = starpnieks;

        }

public void SendMessage (virknes ziņojums)

        {

starpnieks.SendMessage (ziņa, šī);

        }

    }

publiskā klase ConcreteParticipant2: Iparticipant

    {

aizsargāts IMediator starpnieks;

public ConcreteParticipant2 (IMediator mediator)

        {

tas.starpnieks = starpnieks;

        }

public void SendMessage (virknes ziņojums)

        {

starpnieks.SendMessage (ziņa, šī);

        }

    }

Un viss! Šis koda fragments parāda, kā jūs varat izmantot visus līdz šim veidotos veidus.

static void Main (virkne [] args)

    {

IMediator mediator = jauns ConcreteMediator ();

IPdalībnieks dalībnieks1 = jauns Betona dalībnieks1 (starpnieks);

IPdalībnieks2 = jauns Betona dalībnieks2 (starpnieks);

starpnieks.AddParticipant (dalībnieks1);

starpnieks.AddParticipant (dalībnieks2);

dalībnieks1.SendMessage (“Šis ir pirmais dalībnieks”);

dalībnieks2.SendMessage (“Šis ir otrais dalībnieks”);

Console.ReadLine ();

    }

Starpnieka dizaina modelis ir uzvedības modelis, kas veicina brīvu savienošanu, starpniecību sakariem starp atšķirīgiem objektiem. Tā kā starpnieks atvieglo visu mijiedarbību starp objektiem, šos objektus var mainīt pēc vēlēšanās. Vissvarīgākais ir tas, ka viņiem nav vajadzīgas zināšanas par otru. Tādējādi starpnieka modelis palīdz jums uzrakstīt labi strukturētu, uzturamu un viegli pārbaudāmu kodu.

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