390 likes | 591 Views
Patrons de Disseny. Alejandro Arangua Rovira Kenneth Alonso Muñoz. Í ndex. Introducció Patrons de Creació P atrons de Comportament Patrons Estructurals Patrons Arquitectònics. Introducció. Design Patterns: Elements of Reusable Object-Oriented Software (1994)
E N D
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) • PatronsGof(Gang of four) • Erich Gamma • Richard Helm • Ralph Johnson • John Vlissides
Patrons de Creació • Singleton • FactoryMethod • AbstractFactory • Builder(PDF) • Prototype
CreationalpatternsSingleton • Motivació • Assegurar-nos que una classe té una sola instància. • Donar un punt d'accés global a un objecte. • Diagrama
CreationalpatternsFactoryMethod • Motivació • Definir una interfície per crear objectes deixant a les subclasses que decideixin quin tipus crear. • Diagrama <-abstract
CreationalpatternsFactoryMethod • Exemple: 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 (); }
CreationalpatternsAbstractFactory • Motivació • Crear una família d’objectes sense especificar el tipus. • Diagrama
CreationalpatternsAbstractFactory • Exemple:
CreationalpatternsPrototype • Motivació • Especificar els tipus d’objectes a crear a traves d’un prototipus. • Diagrama <-interface
Patrons de Comportament • Chain of responsability • Command • Interpreter • Iterator • Mediator • Memento(PDF) • Observer • Strategy • TemplateMethod • Visitor • State
BehavioralpatternsChain of Responsability • Motivació • Evitar lligar la classe que envia una petició a classes que les atenen. • Diagrama <-interface
BehavioralpatternsCommand • Motivació • Encapsular una petició en un objecte. • Diagrama <-interface
BehavioralpatternsInterpreter • 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
BehavioralpatternsIterator • Motivació • Accedir als elements de un agregat de manera transparent a la seva representació. • Diagrama <-interface
BehavioralpatternsMediator • Motivació • Encapsular com una sèrie d’objectes interactuen. • Diagrama <-interface
BehavioralpatternsObserver • Motivació • Com definir dependències 1 a * de manera que quan un canviï, els altres objectes siguin avisats. • Diagrama abs/int-> <-abs/int
BehavioralpatternsObserver • Exemple:
BehavioralpatternsStrategy • Motivació • Fer intercanviables una família d’algorismes de manera que en temps d’execució variï el seu comportament. • Diagrama
BehavioralpatternsStrategy • Exemple:
BehavioralpatternsTemplateMethod • Motivació • Definir l’esquelet d’algorismes delegant altres passos a subclasses • Diagrama
BehavioralpatternsVisitor • Motivació • Definir noves operacions sense modificar les classes implicades. • Diagrama <-abs/int
BehavioralpatternsVisitor • Exemple
BehavioralpatternsState • Motivació • Canvia el comportament d’un objecte quan canvia el seu estat. • Diagrama <-abstract
Patrons Estructurals • Adapter • Bridge • Compoite • Decorator • Flyweight (PDF) • Proxy • Facade
StructuralpatternsAdapter • Motivació • Convertir la interfície d’una classe en un altre que espera el client. • Diagrama <-interface <-interface
StructuralpatternsAdapter • Exemple:
StructuralpatternsBridge • Motivació • Desacoblar l’ús d’una classe de la seva implementació per tal de que puguin variar independentment. • Diagrama
StructuralpatternsBridge • Exemple:
StructuralpatternsComposite • Motivació • Unir objectes en forma de arbre per tal que es tinguin jerarquies. • Diagrama
StructuralpatternsDecorator • Motivació • Afegir més responsabilitats dinàmicament a un objecte. • Diagrama
StructuralpatternsDecorator • Exemple:
StructuralpatternsProxy • Motivació • Proveir una classe que controli les referencies a un objecte. • Diagrama
StructuralpatternsFacade • 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.
ArchitecturalpatternsModel-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 • PatternsforParallelProgramming • Timothy G. Mattson (Author) • Beverly A. Sanders (Author) • BernaL. 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