Patrons de Disseny

Preview:

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

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

Preguntes?

Recommended