DDD în obiect php valoare sau un obiect-valoare

phpvalue objectDDD

Mici simplu obiect, cum ar fi bani sau de o serie de date, egalitatea care nu se bazează pe identitatea

Object-Valoare (Value Object) - un obiect pe care îl reprezintă conceptul unui domeniu. În DDD (Domain Driven Development - dezvoltare pe baza suprafeței subiect, sau de programare orientat-obiect), este important ca valoarea suporții obiect și îmbogățește limba unificată a domeniului. Este nu numai entitățile care reprezintă anumite valori - acestea sunt cetățeni cu drepturi depline de domenii care formează comportamentul cererii dumneavoastră.

Avantajele utilizării valorilor obiectelor

Cel mai important lucru este faptul că aceste obiecte reflectă limba în care vorbești cu alți dezvoltatori - atunci când spui „Locul» (Locație), toate știu ce înseamnă asta. Al doilea avantaj este ca obiect Value poate valida valoarea - potrivită sau nu pentru a stabili o astfel de instalație.

Un al treilea avantaj este acela că vă puteți baza pe tipul de - știi, că, dacă un obiect valoare a fost trecut ca un argument, acesta va fi întotdeauna într-o stare validă și nu trebuie să vă faceți griji despre asta. Și, ca valoarea obiectului poate conține unele tehnici de specialitate. care face sens doar în contextul acestei valori și pot fi localizate în această facilitate (nu este nevoie pentru a crea clase de utilitate ciudate).

EXEMPLU Valoare Obiect

Ca un exemplu, valoarea obiectului-bine, care este comună pentru toate aplicațiile web, am creat EmailAddress:

  • Acesta prevede că valoarea obiectului EmailAddress este întotdeauna într-o stare validă;
  • Aceasta permite utilizarea unor tipuri de indicii (Taipei-hinting) și scoateți testul de e-mail-uri (mai târziu, pentru a simplifica logica de aplicare);
  • Acesta oferă o oportunitate de a aduce la bar;
  • Acesta oferă o metodă de a compara cu alte EmailAddress.

primitivele Obsession

Ați putea fi reticenți să se facă referire la utilizarea obiectelor ca recipiente pentru valori primitive, dar aceste lucruri sunt descrise ca fiind „codul disprețuitor“ numit „obsesie primitivă“:

Primitive Obsession - este de a utiliza tipurile de date primitive pentru a reprezenta domeniul entității. De exemplu, vom folosi un șir pentru prezentarea comunicării, Integer ca o sumă de bani, sau Struct / dicționar / Hash pentru a reprezenta un anumit obiect.

Folosind Value Object-s este una dintre strategiile de combatere a mirosului. Ideea cheie aici - este de a aduna date despre comportamentul obiectului său. În caz contrar, astfel de acțiuni vor fi împrăștiate pe tot codul, ceea ce poate duce la o complexitate inutilă și va face să fie tratate cu prudență la valorile trecut la metoda.

caracter invariabil

Valoarea Obiect-uri sunt cetățeni importanți din zona dumneavoastră subiect care reflectă conceptul său. Asigurați-vă că atașați comportamentul adecvat pentru astfel de obiecte, care ulterior se va face mai organizat codul și de a transmite mai bine realitatea, deoarece un aspect cheie al scopului și programarea orientată pe obiecte este o simulare a lumii reale.