Alejandro Arangua Rovira Kenneth Alonso Muñoz Patrons de Disseny Alejandro Arangua Rovira Kenneth Alonso Muñoz
Índex Introducció Patrons de Creació Patrons de Comportament Patrons Estructurals Patrons Arquitectònics
Introducció Design Patterns: Elements of Reusable Object-Oriented Software(1994) Patrons Gof(Gang of four) Erich Gamma Richard Helm Ralph Johnson John Vlissides
Patrons de Creació Singleton Factory Method Abstract Factory Builder(PDF) Prototype
Creational patterns Singleton Motivació Assegurar-nos que una classe té una sola instància. Donar un punt d'accés global a un objecte. Diagrama Exemple: Gestor de finestres
Creational patterns Factory Method Motivació Definir una interfície per crear objectes deixant a les subclasses que decideixin quin tipus crear. Diagrama <-abstract Exemple: Volem crear dispositius i no sabem si volem crear sensors, alarmes o altres.
Creational patterns Factory Method Exemple: Exemple: Volem crear dispositius i no sabem si volem crear sensors, alarmes o altres. public Document CreateDocument(String type){ if (type.isEqual("html")) return new HtmlDocument(); if (type.isEqual("proprietary")) return new MyDocument(); if (type.isEqual("pdf")) return new PdfDocument (); }
Creational patterns Abstract Factory Motivació Crear una família d’objectes sense especificar el tipus. Diagrama Exemple: Crear productes sense haber de saber el tipus.
Creational patterns Abstract Factory Exemple: Exemple: Crear productes sense haber de saber el tipus.
Creational patterns Prototype Motivació Especificar els tipus d’objectes a crear a traves d’un prototipus. Diagrama <-interface Prototype es interficie ConcretePrototype implementen els metodes. Exemple: concrete1 es cuadrat i concrete2 es cub.
Patrons de Comportament Chain of responsability Command Interpreter Iterator Mediator Memento(PDF) Observer Strategy Template Method Visitor State
Behavioral patterns Chain of Responsability Motivació Evitar lligar la classe que envia una petició a classes que les atenen. Diagrama <-interface Exemple:
Behavioral patterns Command Motivació Encapsular una petició en un objecte. Diagrama <-interface
Behavioral patterns Interpreter Motivació Donat un llenguatge, definir una representació per la seva gramàtica amb un interpretador. Obtenir tokens i desar-los per el seu posterior ús. Diagrama
Behavioral patterns Iterator Motivació Accedir als elements de un agregat de manera transparent a la seva representació. Diagrama <-interface
Behavioral patterns Mediator Motivació Encapsular com una sèrie d’objectes interactuen. Diagrama <-interface
Behavioral patterns Observer Motivació Com definir dependències 1 a * de manera que quan un canviï, els altres objectes siguin avisats. Diagrama abs/int-> <-abs/int
Behavioral patterns Observer Exemple:
Behavioral patterns Strategy Motivació Fer intercanviables una família d’algorismes de manera que en temps d’execució variï el seu comportament. Diagrama
Behavioral patterns Strategy Exemple:
Behavioral patterns Template Method Motivació Definir l’esquelet d’algorismes delegant altres passos a subclasses Diagrama
Behavioral patterns Visitor Motivació Definir noves operacions sense modificar les classes implicades. Diagrama <-abs/int
Behavioral patterns Visitor Exemple
Behavioral patterns State Motivació Canvia el comportament d’un objecte quan canvia el seu estat. Diagrama <-abstract COMPROVAR
Patrons Estructurals Adapter Bridge Compoite Decorator Flyweight (PDF) Proxy Facade
Structural patterns Adapter Motivació Convertir la interfície d’una classe en un altre que espera el client. Diagrama <-interface
Structural patterns Adapter Exemple:
Structural patterns Bridge Motivació Desacoblar l’ús d’una classe de la seva implementació per tal de que puguin variar independentment. Diagrama
Structural patterns Bridge Exemple:
Structural patterns Composite Motivació Unir objectes en forma de arbre per tal que es tinguin jerarquies. Diagrama
Structural patterns Decorator Motivació Afegir més responsabilitats dinàmicament a un objecte. Diagrama
Structural patterns Decorator Exemple:
Structural patterns Proxy Motivació Proveir una classe que controli les referencies a un objecte. Diagrama
Structural patterns Facade Motivació Proveir una interfície simplificada a un codi més extens. Abstraure les classes dels objectes que en fan us. Diagrama
Patrons Arquitectònics Tipus: Data integration Dissenys per combinar dades de diferents fonts en un visor que les unifiqui. Data Architecture Disseny de les dades per definir i usar un estat objectiu i la necessitat de desar aquests estats. Business Intelligence Disseny de tècniques per tal de identificar, extraure i classificar dades per a posteriors anàlisis de negoci. Master Data Management Disseny de eines i processos per definir i gestionar les dades de l’administrador, es a dir, no transaccionals de la organització. Data modeling Disseny de models de dades(anàlisi i requeriments) per processos de negoci.
Architectural patterns Model-View-Controller Motivació Independitzar el màxim possible les tres capes de Dades, Interfície i controlador. Avançar en paral·lel les tres capes tant en la programació com la fase de proves. Diagrama
Bibliografia Patterns for Parallel Programming Timothy G. Mattson (Author) Beverly A. Sanders (Author) Berna L. Massingill (Author)
Bibliografia http://www.oodesign.com/ http://en.wikipedia.org/wiki/Software_design_pattern http://en.wikipedia.org/wiki/State_pattern http://en.wikipedia.org/wiki/Facade_pattern
Preguntes?