Mis definiciones Layman (no estándar)
POCO
- Objeto% Insert_Your_Language% antiguo y sencillo. Un tipo sin lógica en él. Simplemente almacena datos en la memoria. Por lo general, solo verá propiedades automáticas, a veces campos y constructores.
Domain object
una instancia de una clase relacionada con su dominio. Probablemente excluiría cualquier satélite o objeto de utilidad del objeto de dominio, por ejemplo, en la mayoría de los casos, los objetos de dominio no incluyen cosas como registro, formateo, serialización, encriptación, etc., a menos que esté creando específicamente un producto para registrar, serializar, formatear o encriptar respectivamente. .
Model object
Creo que es lo mismo que Domain object
. La gente tiende a usar esto indistintamente (puedo estar equivocado)
Entity
una clase que tiene id
Repository
una clase que se dirige a un almacenamiento de datos desde un lado (por ejemplo, una base de datos, un servicio de datos u ORM) y al servicio, la interfaz de usuario, la capa empresarial o cualquier otro organismo solicitante. Por lo general, oculta todas las cosas relacionadas con los datos (como replicación, agrupación de conexiones, restricciones clave, transacciones, etc.) y simplifica el trabajo con datos.
Service
software que proporciona algunas funciones normalmente a través de una API pública. Dependiendo de la capa, puede ser, por ejemplo, un contenedor autónomo RESTful o una clase que le permite encontrar una instancia particular del tipo necesario.
Respuesta original
Estos son términos que se utilizan principalmente en el diseño controlado por dominio (distribuido). Ellos no son los mismos. El término Objeto modelo se puede utilizar como sinónimo del objeto de dominio .
Objetos de dominio. Objetos del área específica de la empresa que representan algo significativo para el experto en el dominio. Los objetos de dominio están representados principalmente por entidades y objetos de valor. En términos generales, la mayoría de los objetos que viven en la capa de dominio contribuyen al modelo y son objetos de dominio.
Entidad. Un objeto definido fundamentalmente no por sus atributos, sino por un hilo de continuidad e identidad. (Lo que significa que debe tener una identificación )
POCO. Un objeto simple sin lógica complicada, generalmente tiene solo algunas propiedades y se usa con ORM o como un objeto de transferencia de datos
class Person
- Entidad y POCO, la instancia de esta clase es Objeto de dominio
class PersonService
- Servicio
class PersonRepository
- Repositorio
Es más una connotación de función; un objeto de dominio es algo que es específico de su implementación lógica y puede ser más complejo que un simple POCO; una entidad tiene una connotación para representar algo (generalmente en referencia a un medio de persistencia), y un POCO es solo un identificador rápido para una clase. Un modelo es solo un término que se usa para representar un objeto (generalmente contiene un estado y generalmente se ocupa de la interfaz de usuario o la base de datos).
No es que haya una diferencia funcional, son términos diferentes para describir algo más de cerca. Como la diferencia entre un coche de carreras, una camioneta y un sedán familiar. Todos son automóviles, pero cada término es más descriptivo.
fuente
básicamente se trata de lógica interna
Básicamente, todos se usan para lo mismo, es solo lo inteligentes que quieres que sean
según su ejemplo de código, la clase Person sería un objeto de dominio o un modelo, los otros 2 son un servicio y un repositorio. Los objetos de dominio, Pocos, modelos, dtos, etc.se usan como mensajes, se pasan de una capa a la siguiente, una clase de servicio como PersonService es una capa en la aplicación y lo mismo con la clase Repository como PersonRepository. para una buena vista general, eche un vistazo a http://bob-the-janitor.blogspot.com/2009/07/n-tier-design-revisit-part-1-over-view.html en este caso, se trata de usar una entidad de datos que es básicamente un dto
fuente
Ya hay buenas explicaciones de Dominio y Modelo en las respuestas anteriores.
En una entidad de contexto de base de datos significa elemento en un modelo de relación de entidad ERD . (es decir, una fila en una tabla)
En Microsoft-Dotnet-EntityFramework-World Entity significa un objeto que se puede cargar y guardar en una base de datos utilizando un contexto de datos (base). Por lo general, una entidad no puede existir sin su contexto de datos (base). (Unidad-) Probar la funcionalidad comercial de estas clases es difícil.
Los Pocos (Objetos CommonRuntime antiguos simples) pueden existir sin PersistenceFramework (EntityFramework o NHibernate), por lo que son mucho más fáciles de probar.
La palabra poco es la adaptación de pojo (objeto simple de Java antiguo) que se creó en el mundo de Java por la misma razón.
fuente
Un objeto de dominio es una entidad en la capa de dominio de su aplicación, por ejemplo. una clase de dirección. "Modelo" significa lo mismo: una entidad en el "Modelo de dominio".
Un POCO (objeto CLR simple y antiguo) es un objeto que no tiene un comportamiento (métodos) definido y solo contiene datos (propiedades). Los POCO se usan generalmente como DTO (objetos de transporte de datos) para transportar datos entre capas, y los datos se usan comúnmente para poblar un objeto / entidad de dominio.
fuente