39
Patrons de Disseny Alejandro Arangua Rovira Kenneth Alonso Muñoz

Patrons de Disseny

  • Upload
    orde

  • View
    93

  • Download
    0

Embed Size (px)

DESCRIPTION

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) - PowerPoint PPT Presentation

Citation preview

Page 1: Patrons de Disseny

Patrons de Disseny

Alejandro Arangua RoviraKenneth Alonso Muñoz

Page 2: Patrons de Disseny

Índex• Introducció• Patrons de Creació• Patrons de Comportament• Patrons Estructurals• Patrons Arquitectònics

Page 3: Patrons de Disseny

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

Page 4: Patrons de Disseny

4

Patrons de Creació• Singleton• Factory Method• Abstract Factory• Builder(PDF)• Prototype

Page 5: Patrons de Disseny

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

Page 6: Patrons de Disseny

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

Page 7: Patrons de Disseny

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 ();}

Page 8: Patrons de Disseny

8

Creational patterns

Abstract Factory• Motivació

o Crear una família d’objectes sense especificar el tipus.

• Diagrama

Page 9: Patrons de Disseny

9

Creational patterns

Abstract Factory• Exemple:

Page 10: Patrons de Disseny

10

Creational patterns

Prototype• Motivació

o Especificar els tipus d’objectes a crear a traves d’un prototipus.

• Diagrama

<-interface

Page 11: Patrons de Disseny

11

Patrons de Comportament

• Chain of responsability• Command• Interpreter• Iterator• Mediator• Memento(PDF)• Observer• Strategy• Template Method• Visitor• State

Page 12: Patrons de Disseny

12

Behavioral patterns

Chain of Responsability

• Motivacióo Evitar lligar la classe que envia una petició a classes que les atenen.

• Diagrama

<-interface

Page 13: Patrons de Disseny

13

Behavioral patterns

Command• Motivació

o Encapsular una petició en un objecte.

• Diagrama

<-interface

Page 14: Patrons de Disseny

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

Page 15: Patrons de Disseny

15

Behavioral patterns

Iterator• Motivació

o Accedir als elements de un agregat de manera transparent a la seva representació.

• Diagrama

<-interface

Page 16: Patrons de Disseny

16

Behavioral patterns

Mediator• Motivació

o Encapsular com una sèrie d’objectes interactuen.

• Diagrama

<-interface

Page 17: Patrons de Disseny

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

Page 18: Patrons de Disseny

18

Behavioral patterns

Observer• Exemple:

Page 19: Patrons de Disseny

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

Page 20: Patrons de Disseny

20

Behavioral patterns

Strategy• Exemple:

Page 21: Patrons de Disseny

21

Behavioral patterns

Template Method• Motivació

o Definir l’esquelet d’algorismes delegant altres passos a subclasses

• Diagrama

Page 22: Patrons de Disseny

22

Behavioral patterns

Visitor• Motivació

o Definir noves operacions sense modificar les classes implicades.

• Diagrama

<-abs/int

Page 23: Patrons de Disseny

23

Behavioral patterns

Visitor• Exemple

Page 24: Patrons de Disseny

24

Behavioral patterns

State• Motivació

o Canvia el comportament d’un objecte quan canvia el seu estat.

• Diagrama

<-abstract

Page 25: Patrons de Disseny

25

Patrons Estructurals• Adapter• Bridge• Compoite• Decorator• Flyweight (PDF)• Proxy• Facade

Page 26: Patrons de Disseny

26

Structural patterns

Adapter• Motivació

o Convertir la interfície d’una classe en un altre que espera el client.

• Diagrama

<-interface

<-interface

Page 27: Patrons de Disseny

27

Structural patterns

Adapter• Exemple:

Page 28: Patrons de Disseny

28

Structural patterns

Bridge• Motivació

o Desacoblar l’ús d’una classe de la seva implementació per tal de que puguin variar independentment.

• Diagrama

Page 29: Patrons de Disseny

29

Structural patterns

Bridge• Exemple:

Page 30: Patrons de Disseny

30

Structural patterns

Composite• Motivació

o Unir objectes en forma de arbre per tal que es tinguin jerarquies.

• Diagrama

Page 31: Patrons de Disseny

31

Structural patterns

Decorator• Motivació

o Afegir més responsabilitats dinàmicament a un objecte.

• Diagrama

Page 32: Patrons de Disseny

32

Structural patterns

Decorator• Exemple:

Page 33: Patrons de Disseny

33

Structural patterns

Proxy• Motivació

o Proveir una classe que controli les referencies a un objecte.

• Diagrama

Page 34: Patrons de Disseny

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

Page 35: Patrons de Disseny

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.

Page 36: Patrons de Disseny

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

Page 39: Patrons de Disseny

Preguntes?