Este fue uno de los problemas que me encontré en la elaboración de mi primera aplicación web para mi empresa, que luego acabo convirtiendose en mi proyecto de final de carrera (EITS/FIB).
En la universidad habiamos realizado aplicaciones 3capas, pero ninguna de ellas era web! Por ello realice un pequeño estudio, por diferentes webs y otros proyectos hasta que acabe con una idea exacta de como subdividir las capas, y lo más importantes, como implementarlas.
Antes de continuar, hago un pequeño recordatorio de la arquitectura 3capas:
CAPA PRESENTACIÓN (Pantallas)
CAPA DOMINIO (Lógica de Negocio)
CAPA DATOS (Datos, normalmente con una BD abajo del todo que es la que los guarda físicamente)
Cada una de estas sólo se puede comunicar con la colindante.
La traducción de la Capa de Dominio y de Presentación, no tiene excesiva diferencia a una aplicación no web, el problema lo encontramos en la capa de datos.
Problema:Si hiciesemos una traducción directa, todo set o get, iria a buscar la información a la BD, aumentando de forma exagerada el número de conexiones y consultas a la BD, por lo tanto, si optimizar y sacar el rendimiento necesario a esta.
Solución:Traducir todos los métodos de las clases de la capa de datos, a métodos estáticos a los cuales se le hará llegar el identificador de la clase.
Ejemplo:
3 Capas:
Clase Coche (Matricula: string, Propietario: string)
new()
setMatricula(...) getMatricula()..
setPropietario(...) getPropiertario()...
static cochesPropietario(...)...
3 Capas Web:
Clase Coche ()
nuevoCoche(..)... ->similiar al new
borrarCoche(...)... -> similiar al dispose
modificarCoche(...)... -> similiar al set
datosCoche(...).... -> similiar al get
listarCoche(...)... -> static que se implementaria en la capa de domimio
Espero que os sea de ayuda en vuestras futuras aplicaciones web, sobretodo si estais empezando como me paso a mi en su dia.
Ejemplo 3 capas .net
