====== Patrones de diseño II ====== ===== Patrones de arquitectura ===== ==== MVC ==== //Model-View-Controller// (o Modelo-Vista-Controlador) es ampliamente usado en el desarrollo de aplicaciones. Consiste en dividir el código de una aplicación en: * El **modelo**, que corresponde a la gestión de los datos. * La **vista**, que se encarga de mostrar, formatear, filtrar los datos. * El **controlador** acepta los datos de la vista, realiza operaciones con estos y los pasa al modelo. La esencia del MVC es esquivar el agujero que hay en la relación de la forma de pensar de las personas y la digital. Fue concevido para solucionar el problema de gestionar grandes desarrollos, siendo su proposito el de ayudar a los programadores a entender cómo funciona internamente un sistema mapeando el modo de pensar de las personas a un dominio de negocio. ==== Active Record ==== Es un patrón de arquitectura en el que se marca cómo guardar datos en una DB relacionales. \\ \\ Un objeto debería incluir métodos como Insert, Update o Delete además de las propiedades que corresponden (más o menos) a las columnas en su tabla correspondiente. La tabla quedaría pues englobada en una clase y una fila de esta en una instancia de esta. Al crear un objeto se agrega una fila a la tabla y cualquier objeto cargado es recogido de la DB. \\ \\ Aquí una implementación genérica para un elemento Part, que tiene nombre y precio: part = new Part() part.name = "Sample part" part.price = 123.45 part.save() ===== Patrones concurrentes ===== ==== Proactor ==== ==== Reactor ====