Pregunta

Por el momento, tenemos que construir una aplicación que se basa en un legado uno. Código para que el viejo solicitud debe ser desechado y se reescribe, pero a medida que va generalmente - en lugar de volver a escribir, tenemos que basar algo nuevo en él. Recientemente, decidimos ir el camino DomainDrivenDesign. Por lo tanto - la capa contra la corrupción podría ser una solución para nuestros problemas. Por lo que yo entiendo, de esta manera, debería ser posible volver a escribir gradualmente la aplicación antigua.

Pero - No puedo encontrar ningún buen ejemplo. Le agradecería CUALQUIER información.

¿Fue útil?

Solución

En mi implementación particular, EmployeeAccessService es llamado por un Repositorio. Es realmente una fachada en la capa anti-corrupción. Se delega en el EmployeeAccessAdapter. El adaptador obtiene un objeto del modelo de herencia (que se obtiene de EmployeeAccessFacade), y luego se lo entrega al EmployeeAccessTranslator para transformar el objeto del modelo de herencia al objeto de dominio en el modelo de mi solicitud.

EmployeeAccessService

public Employee findEmployee(String empID){
    return adapter.findEmployee(empID);
}

EmployeeAccessAdapter

public Employee findEmployee(String empID){
    EmployeeAccessContainer container = facade.findEmployeeAccess(empID);
    return translator.translate(container);
}

EmployeeAccessTranslator

public Employee translate(EmployeeAccessContainer container){
    Employee emp = null;
    if (container != null) {
        employee = new Employee();
        employee.setEmpID(idPrefix + container.getEmployeeDTO().getEmpID());
        ...(more complex mappings)

Otros consejos

Desde la libro DDD (Domain-Driven Design: afrontar la complejidad en el corazón de software) por Eric Evans:

  

La interfaz pública de la   suele aparecer CAPA DE ANTICORRUPCIÓN   como un conjunto de servicios, aunque   en ocasiones puede tomar la forma de   una entidad.

y un poco más tarde

  

Una manera de organizar el diseño de   la CAPA ANTICORRUPCIÓN es como una   combinación de fachadas, de los adaptadores (tanto   de Gamma et al. 1995), y   traductores, junto con el   mecanismos de comunicación y transporte   por lo general se necesita para hablar entre   sistemas.

Por lo tanto, es posible encontrar ejemplos mirando el adapter y patrón fachada .

Voy a tratar de parafrasear lo que dijo Eric Evans, su capa anti-corrupción aparecerá como servicios a la parte exterior de su capa. Así exterior de la capa anti-corrupción de las otras capas no sabrán que están "hablando" con una capa anti-corrupción. En el interior de la capa que usaría adaptadores y fachadas para envolver sus fuentes de información heredados.

Más información sobre la capa anti-corrupción:

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