Объект, сущности, документы, модели и т. Д.
Я видел, как эти термины взаимозаменяемо используются в Интернете для объектов (.Net). Может ли кто-нибудь объяснить разницу между ними.
- ПОКО
- сущность
- модель
- Домен Объект
- Активная запись
Являются ли сущности и POCO одинаковыми / похожими?
Обычно я считаю объектами модели частью уровня пользовательского интерфейса архитектуры N-уровня, это правильно?
Есть ли другие "имена" для таких объектов?
Это очень широкие вопросы, которые я понимаю, но я знаю, что это широкая тема!
1 ответ
Решение
Вот мое мнение:
- POCO - Простой Старый Объект C#, следует после POJO Мартина Фаулера для Простого Старого Объекта Java. Это была реакция на EJB 2.0, для которой требовалось два интерфейса и расширение класса просто для выражения EJB-объекта. Идея POJO/POCO подчеркивает создание доменных объектов как экземпляров классов, не требующих тяжелого механизма фреймворка.
- Entity - это синоним для постоянного объекта для меня. Спецификация Java Enterprise Java Bean разделяет мир на сущности, сеансы без сохранения состояния, сеансы с сохранением состояния и компоненты, управляемые сообщениями. Сессионные компоненты похожи на сервисы - функциональные объекты, которые реализуют полезную бизнес-логику. Управляемые сообщениями компоненты связаны с очередями и выполняют асинхронную логику.
- Модель - объединение всех ваших доменных объектов; могут быть или не быть POCO / POJO.
- Доменный объект - это абстрактная идея для объекта, которая описывает бизнес-проблему, которую вы пытаетесь решить. См. Эрик Эванс "Домен-управляемый дизайн".
- Активная запись - еще один термин Мартина Фаулера из PEAA; это оболочка для строки базы данных, которая добавляет логику.