Ответ 1
Я бы назвал это DTO (Data Transfer Object). Я также видел их под названием "классы собственности" в прошлые времена. Я бы не назвал его бизнес-объектом, потому что он не имеет поведения и по определению BO определяется их поведением.
Есть ли разница между бизнес-объектом и объектом?
Если бы я должен был определить класс класса POCO, например класс Product, это был бы бизнес-объект или объект?
public class Product {
public int ID { get; set; }
public string Name { get; set; }
public double Price { get; set; }
public string Sku { get; set; }
}
Обратите внимание, что в этом объекте нет функциональных возможностей.
Я бы назвал это DTO (Data Transfer Object). Я также видел их под названием "классы собственности" в прошлые времена. Я бы не назвал его бизнес-объектом, потому что он не имеет поведения и по определению BO определяется их поведением.
Все объекты являются бизнес-объектами, но не все бизнес-объекты являются объектами.
Объекты - это бизнес-объекты, чья идентификация определяется не их атрибутами, а идентификатором, например Product ID.
Примером бизнес-объекта, который не является сущностью, может быть цвет. Цвет выводит свою идентичность из значений RBG.
Я имею в виду, конечно, Объекты и объекты ценности в доменном дизайне.
Я считаю их одинаковыми, хотя, возможно, если у вас есть некоторые классы, подобные контроллеру (которые работают на вашей модели домена) на вашем бизнес-уровне, они не могут быть названы сущностями. Я бы сказал, что такие классы, как Product, являются как бизнес-объектами, так и объектами, а ProductController - только бизнес-объектом. Сущность представляет объект модели домена - пользователя, книгу, автомобиль и т.д., То, что содержит также свои данные. Я думаю, что это просто вопрос именования, и это не важно, я обычно использую оба термина взаимозаменяемо, но обычно использую "правила", которые я изобразил выше.
Я не думаю, что существует четкое различие между бизнес-объектами и объектами. Кажется, что разные практикующие используют разные версии.
Смотрите эти комментарии Ayende.
Термин "сущность" обычно используется как более претенциозный способ сказать "вещь". Рассмотрим диаграммы диаграмм сущности, например - диаграммы, которые показывают взаимосвязь между вещами.
Объекты Buisness - это просто вещи (oops, entities) в бизнес-домене. Я бы сказал, что ваш Продукт является объектом buisness - сравните его с помощью строки String, которая является вещью в домене реализации.
В моем опыте сущности обычно связаны с CRUD. Бизнес-объекты также могут быть не постоянными объектами, такими как стратегии, политики и т.д.
Есть ли разница между бизнес-объектом и объектом?
Википедия определяет "бизнес-объект" как то же, что я называю "сущностью". Путаница для меня с этим определением заключается в слове "бизнес", потому что "бизнес-логика" ортогональна сущности. "Сущность" (DTO, "объект данных" и т.д.) Является объектом с полями и методами get/set type. Он содержит данные, но содержит минимальную (если есть) логику.
Объект "бизнес-логика" или "бизнес-правила" инкапсулирует логику более высокого порядка, необходимую для работы с этими объектами. Он использует поля из сущностей для принятия решений и для изменения и сохранения объектов по мере необходимости.