DDD в PHP обект стойност или обектно-стойност

phpvalue objectDDD

Малък прост предмет, например пари или поредица от дати, равенство, което не се основава на идентичност

Обект-стойност (стойност на обекта) - обект, който представлява понятието домейн. В DDD (Domain Driven развитие - развитие на базата на предметната област, или обектно-ориентираното програмиране), че е важно, който поддържа Object стойност и обогатява единен език на вашия домейн. Той е не само лицата, които представляват определени ценности - те са пълноправни граждани на предметни области, които формират поведението на вашата кандидатура.

Предимствата от използването на стойност предметите

Най-важното е, че тези обекти отразяват езика, на който говори с други разработчици - когато ти казват "Място» (Местоположение) Всички знаем какво означава това. Второто предимство е, че стойността обект може да валидира стойност - подходящ или не, за да се установи такова съоръжение.

Една трета предимство е, че можете да разчитате на вида на - нали знаете, че ако едно стойност на обекта е приет като аргумент, тя винаги ще бъде в състояние валиден и не е нужно да се притеснявате за това. И тъй като стойност на обекта може да съдържа някои специализирани техники. че да има смисъл само в контекста на тази стойност и може да се намира в това съоръжение (не е необходимо да се създаде странни комунални класове).

Обект Пример стойност

Като пример, Value обектно-добре, което е общо за всички уеб приложения, съм създал EmailAddress:

  • Той предвижда, че стойността на EmailAddress обект винаги е във валиден състояние;
  • Това позволява използването на видове улики (Тайпе-Хинтоване) и премахване на теста имейл-и (по-късно да се опрости прилагането логика);
  • Това дава възможност да се въвеждат в бара;
  • Тя осигурява метод за да го сравните с други EmailAddress.

мания примитиви

Може да не са склонни да се отнасят до използването на обекти като кутии за примитивни ценности, но тези неща са описани като "код високомерен", наричана "примитивна мания":

Мания примитиви - е да се използват примитивни типове данни да представляват домейн лице. Например, ние използваме String за подаване на съобщението, Цяло число като сума от пари, или Struct / речник / Hash да представлява конкретен обект.

Използване на стойност Object-те е една от стратегиите за борба с миризмата. Ключовата идея тук - е да се съберат данни за поведението на своя обект. В противен случай тези действия ще бъдат разпръснати из код, който може да доведе до ненужно усложняване и ще ви накара да се лекуват с повишено внимание към ценностите предадени на метода.

неизменност

Стойност на обекта-ите са важни граждани и да е областта, която отразява нейната концепция. Уверете се, че сте закачили правилното поведение на такива обекти, които в последствие ще направят кода по-организирани и по-добре изразяват реалността, тъй като един от основните аспекти на целта и обектно-ориентираното програмиране е симулация на реалния свят.