Pregunta

Pensando en evitar la replicación del código, tengo una pregunta que me atrapa cada vez que se inicia el desarrollo de un nuevo sistema:

Supongamos que tenemos un sistema en el que tengo un cliente, que crud en un repositorio y mostrarlo como un recurso en un servicio web.

Pensando en las clases relacionadas con el cliente, tendríamos (Bueno, nunca utilizar estos nombres de verdad):

  • CustomerEntity, que representa la entidad utilizado para hacer la lógica del sistema;
  • CustomerRepositoryEntity, representando la fila de la tabla donde se almacenará;
  • CustomerXMLEntity, representando el nodo XML 'cliente';

Parece que voy a tener tres entidades y todos los atributos del cliente a estar en cada clase. Me preguntaba si no hay una manera, o un patrón de consolidar estas tres clases dentro de la misma entidad, llamado simplemente "Cliente".

De esta manera, cada vez que necesito para crear una nueva representación de "cliente" (por ejemplo, si quiero representar como un elemento de JSON), i no es necesario crear una nueva clase para ello. Sé que es un tema muy particular, pero me preguntaba si no podría ser más sencillo (y con mejor aspecto) que la forma en que estoy haciendo ahora.

¿Fue útil?

Solución

Si se asume que está utilizando el mismo lenguaje en sus diferentes aplicaciones ...

Construir una clase de proxy, y una clase de servidor.

La clase backend pasa cerca de sus datos, y sólo existe para servir seguridad de datos en el servidor proxy.

Su apoderado funciona con cualquier cliente y toma el lugar del punto final backend como un parámetro de inicialización. Cuando un get / set se llama en su objeto proxy, que se encarga de su validación y reglas de negocio, a continuación, pasa la petición de nuevo a su clase de back-end, que se ocupa de los detalles de implementación de la persistencia de los datos.

Te tienen dos capas de abstracción: una para la persistencia de datos, y otro para las reglas de negocio

.
>>>>>  Nathan
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top