Download - Patrons de Disseny
Patrons de Disseny
Alejandro Arangua RoviraKenneth Alonso Muñoz
Índex• Introducció• Patrons de Creació• Patrons de Comportament• Patrons Estructurals• Patrons Arquitectònics
3
Introducció• Design Patterns: Elements of Reusable Object-
Oriented Software(1994)
• Patrons Gof(Gang of four)o Erich Gammao Richard Helmo Ralph Johnsono John Vlissides
4
Patrons de Creació• Singleton• Factory Method• Abstract Factory• Builder(PDF)• Prototype
5
Creational patterns
Singleton• Motivació
o Assegurar-nos que una classe té una sola instància.o Donar un punt d'accés global a un objecte.
• Diagrama
6
Creational patterns
Factory Method• Motivació
o Definir una interfície per crear objectes deixant a les subclasses que decideixin quin tipus crear.
• Diagrama
<-abstract
7
Creational patterns
Factory Method• 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 ();}
8
Creational patterns
Abstract Factory• Motivació
o Crear una família d’objectes sense especificar el tipus.
• Diagrama
9
Creational patterns
Abstract Factory• Exemple:
10
Creational patterns
Prototype• Motivació
o Especificar els tipus d’objectes a crear a traves d’un prototipus.
• Diagrama
<-interface
11
Patrons de Comportament
• Chain of responsability• Command• Interpreter• Iterator• Mediator• Memento(PDF)• Observer• Strategy• Template Method• Visitor• State
12
Behavioral patterns
Chain of Responsability
• Motivacióo Evitar lligar la classe que envia una petició a classes que les atenen.
• Diagrama
<-interface
13
Behavioral patterns
Command• Motivació
o Encapsular una petició en un objecte.
• Diagrama
<-interface
14
Behavioral patterns
Interpreter• Motivació
o 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
15
Behavioral patterns
Iterator• Motivació
o Accedir als elements de un agregat de manera transparent a la seva representació.
• Diagrama
<-interface
16
Behavioral patterns
Mediator• Motivació
o Encapsular com una sèrie d’objectes interactuen.
• Diagrama
<-interface
17
Behavioral patterns
Observer• Motivació
o Com definir dependències 1 a * de manera que quan un canviï, els altres objectes siguin avisats.
• Diagrama
abs/int-><-abs/int
18
Behavioral patterns
Observer• Exemple:
19
Behavioral patterns
Strategy• Motivació
o Fer intercanviables una família d’algorismes de manera que en temps d’execució variï el seu comportament.
• Diagrama
20
Behavioral patterns
Strategy• Exemple:
21
Behavioral patterns
Template Method• Motivació
o Definir l’esquelet d’algorismes delegant altres passos a subclasses
• Diagrama
22
Behavioral patterns
Visitor• Motivació
o Definir noves operacions sense modificar les classes implicades.
• Diagrama
<-abs/int
23
Behavioral patterns
Visitor• Exemple
24
Behavioral patterns
State• Motivació
o Canvia el comportament d’un objecte quan canvia el seu estat.
• Diagrama
<-abstract
25
Patrons Estructurals• Adapter• Bridge• Compoite• Decorator• Flyweight (PDF)• Proxy• Facade
26
Structural patterns
Adapter• Motivació
o Convertir la interfície d’una classe en un altre que espera el client.
• Diagrama
<-interface
<-interface
27
Structural patterns
Adapter• Exemple:
28
Structural patterns
Bridge• Motivació
o Desacoblar l’ús d’una classe de la seva implementació per tal de que puguin variar independentment.
• Diagrama
29
Structural patterns
Bridge• Exemple:
30
Structural patterns
Composite• Motivació
o Unir objectes en forma de arbre per tal que es tinguin jerarquies.
• Diagrama
31
Structural patterns
Decorator• Motivació
o Afegir més responsabilitats dinàmicament a un objecte.
• Diagrama
32
Structural patterns
Decorator• Exemple:
33
Structural patterns
Proxy• Motivació
o Proveir una classe que controli les referencies a un objecte.
• Diagrama
34
Structural patterns
Facade• Motivació
o Proveir una interfície simplificada a un codi més extens.o Abstraure les classes dels objectes que en fan us.
• Diagrama
35
Patrons Arquitectònics• Tipus:
o Data integration• Dissenys per combinar dades de diferents fonts en un visor que les
unifiqui.o Data Architecture
• Disseny de les dades per definir i usar un estat objectiu i la necessitat de desar aquests estats.
o Business Intelligence• Disseny de tècniques per tal de identificar, extraure i classificar
dades per a posteriors anàlisis de negoci.o 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ó.
o Data modeling• Disseny de models de dades(anàlisi i requeriments) per processos
de negoci.
36
Architectural patterns
Model-View-Controller• Motivació
o Independitzar el màxim possible les tres capes de Dades, Interfície i controlador.
o Avançar en paral·lel les tres capes tant en la programació com la fase de proves.
• Diagrama
Bibliografia• Patterns for Parallel Programming
o Timothy G. Mattson (Author)o Beverly A. Sanders (Author)o 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?