Задать вопрос
@springimport

Бывает ли разделенная модель в ddd?

Модель занимает главное место в ddd. Она включает в себя данные и методы работы с ними. Все понятно когда в приложении модель полностью контролируется разработчиком, но что если архитектура приложения модульная и позволяет включать сторонние модули которые расширяют функционал модели.
Например, есть класс User.
class User
{
    private $name;

    public function getName()
    {
    }

    public function setName()
    {
    }
}

Теперь в стороннем модуле нужно чтобы пользователь научился определять: хороший ли он.
public function isGoodPerson()
{
    return $this->name === 'Vasya';
}

Самое простое что можно сделать - наследование. Сразу откидываем вариант (module 2: isBadPerson).

Остается создать новый класс который будет требовать модель User и в котором будет нужный метод. В этом и вопрос: не нарушается ли главный принцип опп (да и ddd) когда манипуляция над данными происходит вне класса?
Нарушается? Тогда как расширять модели?
  • Вопрос задан
  • 185 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
@galliard
Используй наследование, оно тут как раз в тему.
Ответ написан
Комментировать
@ddd329
В DDD это нормально определить одно и тоже понятие в разных моделях. В любой книге по DDD написано про ограниченные контексты, как раз для этого они и придуманы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы