Tengo un DAO, DTO y BO. El código siguiente es el resultado:Separación de preocupaciones - DAO, DTO y BO
// Instantiate a new user repository.
UserRepository rep = new UserRepository();
// Retrieve user by ID (returns DTO) and convert to business object.
User user = rep.GetById(32).ToBusiness<User>();
// Perform business logic.
user.ResetPassword();
user.OtherBusinessLogic("test");
user.FirstName = "Bob";
// Convert business object back to a DTO to save to the database.
rep.Save(user.ToDataTransfer<Data.DTO.User>());
así que estoy tratando de separar las preocupaciones, pero quiero para deshacerse de los "convertidos" en este código. Los "convertidos" en realidad están ubicados en la capa de lógica de negocios (la capa DTO no sabe nada de la capa de lógica de negocios) como un objeto de extensión. El DTO en sí mismo, obviamente, solo almacena datos y no tiene lógica comercial alguna. El UserRepository llama al DAO y al final de GetById usa AutoMapper para mapear desde el DAO al DTO. Los "conversos" (ToBusiness y ToDataTransfer) hacen exactamente lo que dicen.
Un colega mío pensó que podría tener que tener un repositorio de negocios, pero pensó que podría ser un poco torpe. ¿Alguna idea?
Gracias por su respuesta. Cualquier código de muestra que pueda proporcionar sería útil. –
Estoy de acuerdo con esto. Debería recuperar su Business Object y, si necesita convertirlo a DTO, esa conversión podría realizarse con una herramienta como AutoMapper. –