You are on page 1of 5

Curso: Diseño de software Integrantes:  Herminio Paucar  Paul Quiroz  Wilfredo Villanueva  William Manrique  Frank Chávez

Patrón de diseño
  

Nombre: View Detailer Nombres Alternativos Detallador de vista, editor de vista, personalizador. Propósito Este patrón permite personalizar la vista básica a elegir, es decir, añadir o remover
elementos de la vista de acuerdo la información que brinda el controlador. Este patrón es aplicado en un esquema Model-View-Controller (MVC).

Motivación
En un sistema web se requiere un acceso mediante identificador y contraseña, además de considerar los roles de los usuarios, brindado información y detalles de acuerdo al tipo de usuario. Se requiere de una solución para que el sistema personalice la vista básica a mostrar de acuerdo a la cuenta ingresada.

Estructura

Aplicabilidad Se aplica para facilitar la personalización de la vista a elegir, teniendo en cuenta
los datos del modelo elegido por el controlador. Se orienta al estilo arquitectónico Model-ViewController (MVC)

 ModelAndView: Contiene los detalles de la vista a retornar.  LoginImplementation: Implementación de un servicio que se tomará el controlador para seleccionar los detalles a mostrar en la vista objetivo. que delegará las responsabilidades a los servicios (LoginImplementation).  Controller: Interfaz del controlador central. El lenguaje debe soportar interfaces. después de delegará la responsabilidad a las clases odelo (UserImplementation). según la clase modelo. .Logueo de sistema web Tiendas virtuales  Implementación Se necesita un lenguaje de programación orientado a objetos.  Usos conocidos . Es independiente la cantidad de clases que implementa las interfaces presentes. que contiene los detalles de la clase modelo. Es necesario emplear el esquema MVC.  ServiceIdentification: Es la interfaz de los servicios.  ConstructorImplementation: Implementación del ModelAndViewConstructor.  ModelAndViewConstructor:Interfaz que utilizarà la informaciòn de User para construir el ModelAndView personalizado.  Consecuencias Simplifica la personalización de las vistas.Curso: Diseño de software Integrantes:  Herminio Paucar  Paul Quiroz  Wilfredo Villanueva  William Manrique  Frank Chávez  Participantes Dentro de este patrón se reconocen las siguientes clases:  ControllerImplementation: Controlador central que delegará responsabilidad a los servicios. remover servicios en el esquema. que permitirá reutilizar el esquema. y èstas permitirán obtener los detalles que serán utilizará el ConstructorImplementation para personalizar la vista a retornar. Facilidad para añadir/eliminar personalizaciones.  UserImplementation: Implementaciòn de User.  Colaboración Todo el esquema depende de la clase ControllerImplementation. a excepción del controlador. Tomar en cuenta el estilo de arquitectura MVC. que permite añadir.  User: Interfaz de las clases modelo.

Curso: Diseño de software Integrantes:  Herminio Paucar  Paul Quiroz  Wilfredo Villanueva  William Manrique  Frank Chávez  Código de ejemplo public interface Controller { } public class ConstructorImplementation1 implements ModelAndVIewConstructor { public ConstructorImplementation1() { } public void ModelAndVIewConstructor() { } } public class ConstructorImplementation2 implements ModelAndVIewConstructor { public ConstructorImplementation2() { } public void ModelAndVIewConstructor() { } } public class ControllerImplementation implements Controller { public ModelAndView theModelAndView. public User theUser. public ControllerImplementation() { } } public class LoginImplementation1 implements ServiceIdentification { public LoginImplementation1() { } . public ServiceIdentification theServiceIdentification. public ModelAndVIewConstructor theModelAndVIewConstructor.

Curso: Diseño de software Integrantes:  Herminio Paucar  Paul Quiroz  Wilfredo Villanueva  William Manrique  Frank Chávez public void ServiceIdentification() { } } public class LoginImplementation2 implements ServiceIdentification { public LoginImplementation2() { } public void ServiceIdentification() { } } public class ModelAndView { public ModelAndView() { } } public interface ModelAndVIewConstructor { } public interface ServiceIdentification { } public interface User { } public class UserImplementation1 implements User { public UserImplementation1() { } public void User() { } } public class UserImplementation2 implements User { .

Curso: Diseño de software Integrantes:  Herminio Paucar  Paul Quiroz  Wilfredo Villanueva  William Manrique  Frank Chávez public UserImplementation2() { } public void User() { } }  Patrones relacionados Decorator Adapter .