modele de design orientate pe obiecte explicate folosind exemple practice

0 Comments

modele comportamentale

aceste tipuri de modele se referă la comunicarea dintre obiecte. În cele mai multe cazuri, dependențele dintre obiectele care comunică sunt reduse prin aceste modele, ceea ce duce la un design software mai bun.acest model creează un lanț de obiecte receptor pentru o cerere. Evită cuplarea expeditorului unei cereri către receptor și oferă mai multor obiecte șansa de a gestiona cererea. Obiectele receptoare sunt legate între ele., În exemplul de mai jos este construit un lanț de unități middleware. Cererea, care conține e-mail și parolă, este transmisă în lanț. Elemente noi din lanț pot fi adăugate cu ușurință.

Comanda

În comanda model un obiect este folosit pentru a îngloba toate informațiile necesare pentru a efectua o acțiune sau de a declanșa un eveniment la o dată ulterioară. După cum se arată mai jos, ActionOpen definește acțiunea, precum și obiectul pe care acțiunea este executată., Mai multe informații nu sunt necesare și un alt obiect, aici meniu, poate executa acțiunea.

Interpret

Interpretul model definește o reprezentare pentru gramatica unei limbi și oferă posibilitatea de a interpreta fraze din limba respectivă. În fragmentul de cod de mai jos un Plus obiect poate interpreta „operand1 + operand2” și știe ce să facă cu această expresie. Mai mulți interpreți pot fi adăugați fără a schimba prea mult structura. Parser apoi utilizează interpreți pentru a înțelege de intrare.,

Iterator

Iterator este folosit pentru a traversa un container de date pentru a accesa recipient elemente fără nevoia de a cunoaște structura de bază. De asemenea, pot fi adăugate noi variante traversale fără a schimba interfața obiectelor sau structura de date în sine.
ChannelSurfer, descris mai jos, poate accesa canalele în mod consecutiv. Obiectul RemoteControl nu trebuie să aibă grijă de modul în care sunt organizate canalele. Un RandomChannelSurfer, de exemplu, pot fi adăugate fără prea multe probleme.,

Mediator

Dacă două sau mai multe obiecte trebuie să coopereze, Mediatorul model ar putea fi aplicat. Mai ales dacă obiectele nu se cunosc, dacă nu ar trebui să fie strâns cuplate sau interacțiunea lor este complexă, acest model poate ajuta.
în exemplul de mai jos există o anumită interacțiune necesară între elementele UI. Această interacțiune se întâmplă prin Autentificaredialog ca Mediator. În acest fel interacțiunea nu este definită într-unul dintre obiectele participante, ci extrasă în mediator.,

Amintire

Amintire model este util dacă o anumită stare a unui obiect ar trebui să fie salvate pentru utilizare ulterioară. Prin urmare, nu încalcă încapsularea detaliilor de implementare ale obiectului respectiv. De exemplu, poate fi utilizat pentru implementarea unui mecanism de anulare.

Observator

În modelul de observator observator obiecte mă abonez la un obiect observabil pentru a fi notificat de fiecare dată când observabile își schimbă date., Observatorii sunt cuplate vag și pot fi adăugate și eliminate la run-time.
în ceea ce privește modul în care observatorul primește în cele din urmă datele de la observabil, există două variante: push și pull. Codul de mai jos arată varianta pull, care este mai flexibilă, deoarece în acest caz observabilul nu trebuie să știe cum dorește observatorul să primească datele, dar observatorul poate prelua datele așa cum dorește.

de Stat

Statul model permite un obiect își modifică comportamentul, atunci când starea sa internă modificări., Acest model este similar cu modelul de strategie, dar în acest caz se decide intern modul în care se comportă obiectele. Acest lucru este util mai ales dacă condițiile complexe definesc modul în care ar trebui să se comporte obiectul. Noile state pot fi adăugate independent de statele existente.

Strategie

În contextul Strategiei model există mai multe variante pentru un algoritm în cazul în care o variantă este ales pentru a fi executat în timpul rulării.,
în exemplul de mai jos, un obiect compresor poate fi utilizat cu unul dintre cei doi algoritmi diferiți definiți în timpul rulării. Metoda care execută acțiunea (createArchive) aplică apoi algoritmul ales.

Template

model Șablon definește o structură de sub clase în care pașii unui algoritm și ordinea lor sunt definite. Acest lucru asigură că clasele secundare urmează exact aceiași pași, oferind o mai bună imagine de ansamblu și consecvență., De asemenea, permite definirea implementărilor implicite pentru pașii care pot fi suprascriși de subclase.
așa cum se arată mai jos toate parsers moștenind de la DataParser urmați exact aceiași pași atunci când parse() este executat. Acest lucru asigură, de exemplu, că toate parserele închid fișierele și înregistrează starea.

Vizitator

Vizitator model permite să se aplice una sau mai multe operație la un set de obiecte de la run-time fără a fi nevoie operațiunile strâns legate de structura de obiect.,
acest lucru vă permite să pună în aplicare expediere dublă în cazul în care un apel funcție la diferite funcții concrete este în funcție de tipul de run-time a două obiecte. În exemplul de mai jos, pe de o parte, există elemente de traseu și, pe de altă parte, obiecte de vizitator care execută fiecare funcții diferite pe Elementele traseului. Dacă în viitor vor fi adăugați mai mulți vizitatori, elementul de traseu nu trebuie să se schimbe.


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *