patrones intro mvc

17
Programación avanzada. Patrones de diseño Web  Keyword

Upload: jorge-portella

Post on 05-Oct-2015

24 views

Category:

Documents


0 download

DESCRIPTION

Patrones Java

TRANSCRIPT

  • Programacin avanzada.

    Patrones de diseo Web

  • Keyword

  • Patrn

    Es una solucin a un problema dediseo no trivial que es

    Efectiva: ha valido para resolverel problema en diseos pasados

    Reusable: la solucin es lamisma para problemas similares

    Ventajas del diseo con patrones

    Permiten reusar solucionesprobadas

    Facilitan la comunicacin entrediseadores

    Los patrones tienen nombresestndar

    Facilitan el aprendizaje aldiseador inexperto

  • Caractersticas de un patrn

    1. Contexto: situacin en la que sepresenta el problema de diseo.

    2. Problema: descripcin delproblema a resolver, yenumeracin de las fuerzas aequilibrar (requisitos nofuncionales como eficiencia,portabilidad, cambiabilidad).

    3. Solucin: conjunto de medidasque se han de tomar, como crearalguna clase, atributo o mtodo,nuevos comportamientos entreclases.

  • Patrn de diseo Web

    Es un aspecto del diseo visualpor el que se determina ladisposicin general de loselementos del sitio web en el reade visualizacin determinado porel navegador.

  • Caractersticas patrones GOF(Gang Of Four) Son soluciones concretas. Proponen soluciones a problemas concretos, no son teoras genricas.

    Son soluciones tcnicas. Indican resoluciones tcnicas basadas en Programacin Orientada a Objetos (POO).En ocasiones tienen ms utilidad con algunos lenguajes de programacin y en otras son aplicables acualquier lenguaje.

    Se utilizan en situaciones frecuentes. Debido a que se basan en la experiencia acumulada al resolverproblemas reiterativos.

    Favorecen la reutilizacin de cdigo. Ayudan a construir software basado en la reutilizacin, a construirclases reutilizables. Los propios patrones se reutilizan cada vez que se vuelven a aplicar.

    El uso de un patrn no se refleja en el cdigo. Al aplicar un patrn, el cdigo resultante no tiene por qudelatar el patrn o patrones que lo inspir. No obstante ltimamente hay mltiples esfuerzos enfocados a laconstruccin de herramientas de desarrollo basados en los patrones y frecuentemente se incluye en losnombres de las clases el nombre del patrn en que se basan facilitando as la comunicacin entredesarrolladores.

    Es difcil reutilizar la implementacin de un patrn. Al aplicar un patrn aparecen clases concretas quesolucionan un problema concreto y que no ser aplicable a otros problemas que requieran el mismo patrn.

  • clasificacin GOF propsito Patrones de Creacin

    Patrones Estructurales

    Patrones de Comportamiento

  • Patrones de creacin

    Se encargan de la creacin de instancias de losobjetos. Abstraen la forma en que se crean losobjetos, permitiendo tratar las clases a crear deforma genrica, dejando para despus la decisin deque clase crear o cmo crearla. Segn donde se tomedicha decisin se pueden clasificar los patrones decreacin en: patrones de creacin de clases (ladecisin se toma en los constructores de las clases yusan la herencia para determinar la creacin de lasinstancias).

    Abstract Factory (Fbrica Abstracta): Permitetrabajar con objetos de distintas familias demanera que las familias no se mezclen entre s yhaciendo transparente el tipo de familia concretaque se est usando.

    Builder (Constructor virtual): Abstrae el proceso decreacin de un objeto complejo, centralizandodicho proceso en un nico punto.

    Factory Method (Mtodo de fabricacin):Centraliza en una clase constructora la creacin deobjetos de un subtipo de un tipo determinado,ocultando al usuario la casustica para elegir elsubtipo que se crea.

    Prototype (Prototipo): Crea nuevos objetosclonndolos de una instancia ya existente.

    Singleton (Instancia nica): Garantiza la existenciade una nica instancia para una clase y la creacinde un mecanismo de acceso global a dichainstancia.

  • Patrones estructurales

    Son los que plantean las relaciones entre clases, lascombinan y forman estructuras mayores. Tratan deconseguir que los cambios en los requisitos de laaplicacin no ocasionen cambios en las relacionesentre los objetos. Lo fundamental son las relacionesde uso entre los objetos, y stas estn determinadaspor las interfaces que soportan los objetos. Estudiancmo se relacionan los objetos en tiempo deejecucin. Sirven para disear las interconexionesentre los objetos

    Adapter (Adaptador): Adapta una interfaz para quepueda ser utilizada por una clase que de otromodo no podra utilizarla.

    Bridge (Puente): Desacopla una abstraccin de suimplementacin.

    Composite (Objeto compuesto): Permite tratarobjetos compuestos como si de uno simple setratase.

    Decorator (Envoltorio): Aade funcionalidad a unaclase dinmicamente.

    Facade (Fachada): Provee de una interfaz unificadasimple para acceder a una interfaz o grupo deinterfaces de un subsistema.

    Flyweight (Peso ligero): Reduce la redundanciacuando gran cantidad de objetos poseen idnticainformacin.

    Proxy: Mantiene un representante de un objeto.

  • Patrones de comportamiento

    Plantea la interaccin y cooperacin entre las clases. Lospatrones de comportamiento estudian las relaciones entrellamadas entre los diferentes objetos, normalmente ligados conla dimensin temporal. Los patrones de comportamiento son:

    Chain of Responsibility (Cadena de responsabilidad): Permiteestablecer la lnea que deben llevar los mensajes para que losobjetos realicen la tarea indicada.

    Command (Orden): Encapsula una operacin en un objeto,permitiendo ejecutar dicha operacin sin necesidad deconocer el contenido de la misma.

    Interpreter (Intrprete): Dado un lenguaje, define unagramtica para dicho lenguaje, as como las herramientasnecesarias para interpretarlo.

    Iterator (Iterador): Permite realizar recorridos sobre objetoscompuestos independientemente de la implementacin deestos.

    Mediator (Mediador): Define un objeto que coordine lacomunicacin entre objetos de distintas clases, pero quefuncionan como un conjunto.

    Memento (Recuerdo): Permite volver a estados anterioresdel sistema.

    Observer (Observador): Define una dependencia de uno-a-muchos entre objetos, de forma que cuando un objetocambie de estado se notifique y actualicen automticamentetodos los objetos que dependen de l.

    State (Estado): Permite que un objeto modifique sucomportamiento cada vez que cambie su estado interno.

    Template Method (Mtodo plantilla): Define en unaoperacin el esqueleto de un algoritmo, delegando en lassubclases algunos de sus pasos, esto permite que lassubclases redefinan ciertos pasos de un algoritmo sincambiar su estructura.

    Visitor (Visitante): Permite definir nuevas operaciones sobreuna jerarqua de clases sin modificar las clases sobre las queopera.

    Strategy (Estrategia): Permite disponer de varios mtodospara resolver un problema y elegir cul utilizar en tiempo deejecucin.

  • Desarrollo MVC.

    Java Netbeans.