DDD, объекты значения и ORM

Я думаю, что вам нужно это uasort -

ИЗ PHP DOC

Сортировать массив с определенной пользователем функцией сравнения и поддерживать связь индекса

Пример

  uasort($stats, 'compare');

13
задан Shooresh 7 May 2018 в 19:28
поделиться

3 ответа

Насколько я понимаю DDD, объекты значений - это просто способ разбить ваши сущности. Если объект значения должен быть сохранен с идентификатором в базе данных, это не объект значения.

Пример:

Модель предметной области выглядит так (C #):

public class Customer : Entity
{
    public Guid CustomerID { get; }

    public string LastName { get; set; }

    public Address HomeAddress { get; set; }
}

public class Address : ValueObject
{
    public string Street { get; set; }

    public string City { get; set; }

    public string ZipCode { get; set; }
}

Соответствующая таблица базы данных будет выглядеть примерно так ( Псевдо-SQL):

CREATE TABLE Customers
(
    CustomerID,

    LastName,

    HomeAddress_Street,

    HomeAddress_City,

    HomeAddress_ZipCode,
)

Чтобы хранить адреса в отдельной таблице, вы должны сделать ее объектом с идентификатором.

4
ответ дан 1 December 2019 в 17:28
поделиться

Когда Эрик Эванс говорит о том, что «сущности имеют идентичность, а объекты-значения - нет», он не говорит о столбце идентификаторов в базе данных - он говорит об идентичности как концепции .

ВО не имеют концептуальной идентичности. Это не означает, что у них не должно быть постоянства идентичности. Не позволяйте реализации постоянства омрачить ваше понимание сущностей и ВО.

См. Мой пост здесь .

48
ответ дан 1 December 2019 в 17:28
поделиться

Лично у меня есть поле Id в объекте значения - я рассматриваю его как другой атрибут объекта значения (например, имя, местоположение и т. Д.).

Возможно, это не настоящий DDD, но у меня он работает.

4
ответ дан 1 December 2019 в 17:28
поделиться
Другие вопросы по тегам:

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