27 de febrero de 2014

Service Layer Pattern

Es patron que define un capa de servicios en el cual limita un conjunto de operaciones disponibles para encapsular la logica de negocio de la de aplicacion, controlando las transaciones y coordinando la respuesta de las operaciones.

A modo de ejemplo podemos tener servicios para:
  • Guardar/Actualizar la informacion  DefaultRequestService (Servicio en cargado de actualizar la informacion)
  • Un servicio con las operaciones del negocio. DefaultOperationService (Servicio que se encargue de la logica del aplicativo, aprobar, rechzar cancelar... etc.)
  • Un servicio para integraciones. DefaultIntegrationService (servicio que se encargue de actualizar otros sistemas).
Con este patron de diseño se pueda duplicar un poco de codigo por intentar separar los servicios en capas.




Bibliografia:
Service Layer
Wiki - Service Layers Pattern


11 de febrero de 2014

FluentInterface


El termino FluentIterface es creado por Eric Evans y Martin Fowler, con el cual se crea un estilo de codigo mas fluido.

La intencion es que cuando se tenga que agregar multiples propiedades (no solo propiedades, tambien es aplicable a operaciones) a un objecto, este se haga de manera mas fluida.

Ejemplo:

    private void fluentInterface(Cliente cliente){
       
        cliente.nuevaOrden()
                .agregarItem(1, 20.3, "Peliculas Accion")
                .agregarItem(2, 10.4, "Pelicula Infantil")
                .procesar();

     }
    

     private void tradicional(Cliente cliente){
       
        Orden orden = new Orden();
        Item item1 = new Item(1, 20.3, "Peliculas Accion");
        orden.agregarItem(item1);
        Item item2 = new Item(2, 10.4, "Pelicula Infantil");
        orden.agregarItem(item2);
        cliente.agregarOrden(orden);
        orden.procesar();
    }



El ejemplo es basico, pero se da entender que significa FluentInterface, lo que se quiere hacer con esto es que el codigo sea facil de leer y entender. Y que todo se vea como una unidad.