PHP Notes
  • Как дебажить код ReactJS в ConsoleDevTools
  • Processing domain events
  • Паттерн проектирования Adapter
  • Принципы SOLID
  • Основные зависимости в UML
  • Простая схема UML-sequence
  • Value Objects
  • Паттерн проектирования Chain of Responsibilities
  • How to create bash script
  • Create monolog channel Symfony
  • Вопросы из собеседований PHP
  • Заметки по Wordpress
  • Изучая SEO
  • Книги
  • Adobe Character Animator
  • Martin Fowler Refactoring Notes
  • Идеи для редизайна
  • Заметки по Yii2
  • Photoshop заметки
  • WEB Notes
  • Создание канала в телеграм
  • PHP Notes
  • Ads notes
  • Таргетолог smm обучение
  • Парсинг андроид приложения
  • Phrasal verb look
  • Phrasal verb "Go"
  • Clean Code
  • Conda tutorial
  • Scrapy notes
  • Как подключиться к хосту локальному (к бд, например) из докер контейнера
  • Untitled
  • Маркетинг в Инсте Конспект
  • Таргетинг
  • По сайту
  • Programming learning
  • VBA notes
  • PHP project deployment
  • На сервер без пароля
  • PHPStorm + CodeSniffer configuring
  • Laravel learning
  • Sudo disable with docker
  • Facebook Marketing API
  • Docker notes
  • Фриланс
  • Настройка Sublime Text 3
  • Изучаем БЭМ
  • Алгоритм верстки сайта
  • Настройка VS Code
  • Gulp настройка установка плагины. Пошаговая инструкция по настройке сборки Gulp 4 для верстки сайтов
  • Процесс накатывания стилей CSS
  • Generate entities from db Doctrine
  • Premiere Pro Notes
  • Идеи для Ads
  • Migrate and Setup Hosted Live WordPress Site to Localhost
  • Ресурсы PHP
  • Делаем тему Wordpress
Powered by GitBook
On this page

Was this helpful?

Value Objects

Основные моменты (взяты отсюда https://codete.com/blog/value-objects/)

  1. Value Objects are immutable

final class Money { 
/** @var int */ 
private $value;
/** @var string */
private $currency;

public function __construct(int $value, string $currency = 'USD')
{
    $this->value = $value;
    $this->currency = $currency;
}

public function equals(Money $money): bool
{
    return $this->value === $money->value
        && $this->currency === $money->currency;
}

public function getValue(): int
{
    return $this->value;
}

public function getCurrency(): string
{
    return $this->currency;
}
}

2. Value Objects можно рассматривать как примитивные объекты. Если в языке программирования не поддерживается создание собственных примитивных типов, то можно создавать Value Objects.

3. Value Objects могут не только содеражть геттеры, но и другие вспомогательные функции (либо полностью новый, либо на основе текущего, например, результат добавления некоторой суммы к объекту Money), предоставление различного представления для его внутреннего состояния (например, IP-адрес VO может представлять IP-адрес в виде строки или двоичных данных)

PreviousПростая схема UML-sequenceNextПаттерн проектирования Chain of Responsibilities

Last updated 5 years ago

Was this helpful?