Мои (нестандартные) определения Layman
POCO
- Обычный старый% Insert_Your_Language% Object.Тип без логики.Он просто хранит данные в памяти.Обычно вы видите только автоматические свойства, иногда поля и конструкторы. Domain object
экземпляр класса, который связан с вашим доменом.Я бы, вероятно, исключил любые объекты-спутники или служебные объекты из объекта домена, например, в большинстве случаев объекты домена не включают такие вещи, как ведение журнала, форматирование, сериализация, шифрование и т. Д., Если вы специально не создаете продукт для регистрации, сериализации, форматирования или шифрования соответственно.. Model object
Я думаю, что то же самое, что и Domain object
.Люди склонны использовать это взаимозаменяемо (я могу ошибаться) Entity
класс, который имеет id
Repository
класс, который говорит с хранилищем данных с одной стороны (например,база данных, служба данных или ORM) и в службу, пользовательский интерфейс, бизнес-уровень или любой другой запрашивающий орган.Обычно он скрывает все связанные с данными вещи (такие как репликация, пул соединений, ключевые ограничения, транзакции и т. Д.) И упрощает работу только с программным обеспечением для обработки данных Service
, которое предоставляет некоторые функции, обычно через открытый API,В зависимости от уровня, это может быть, например, автономный контейнер RESTful или класс, который позволяет вам найти конкретный экземпляр нужного типа.
Исходный ответ
Это термины , которые широко используются в (распределенном) доменно-ориентированном проектировании.Они не то же самое.Термин Модель объекта может использоваться как синоним к объекту домена .
Доменные объекты. Объекты из конкретной бизнес-области, которые представляютчто-то значимое для эксперта в области.Доменные объекты в основном представлены объектами и ценными объектами.Вообще говоря, большинство объектов, которые живут в доменном слое, вносят свой вклад в модель и являются объектами домена.
Entity. Объект в основном определяется не его атрибутами, а потоком непрерывности и идентичности., (имеется в виду должен иметь Id )
POCO. Простой объект без сложной логики, обычно он имеет тольконесколько свойств и используется с ORM или в качестве объекта передачи данных
class Person
- Entity и POCO, экземпляром этого класса является Domain Objectclass PersonService
- Сервисclass PersonRepository
- Хранилище