Design Patterns / Patrones de Diseño

Post on 02-Jul-2015

124 views 3 download

description

Alejandro Ramírez presenta estas diapositivas en la charla sobre Patrones de Diseño de Autentia

Transcript of Design Patterns / Patrones de Diseño

Patrones de diseño

un patrón es una receta

Un patrón identifica

4 contexto

4 objetivos y restricciones

4 diseño

Un buen patrón

4 no es trivial,

4 ha sido revisado y experimentado,

4 equilibra restricciones y objetivos

Un patrón es importante

4 encapsula conocimiento,

4 proporciona un vocabulario común,

4 estimula la reutilización del software.

No hay un formato formal

4 nombre

4 clasificación

4 resumen

4 problema

4 contexto

4 fuerzas que intervienen

4 solución

4 ejemplo

4 contexto resultante

4 exposición razonada

4 patrones relacionados

4 usos comunes

IF you find yourself in CONTEXT for example EXAMPLES, with PROBLEM, entailing FORCESTHEN for some REASONS, apply DESIGN FORM AND/OR RULE to construct SOLUTION leading to NEW CONTEXT and OTHER PATTERNS

Clasificación

4 Design

4 Creational

4 Partitiooning

4 Structural

4 Behavioral

4 Concurrency

Antipatrones

Un antipatrón describe

4 una forma general del problema

4 las causas

4 síntomas

4 consecuencias

4 solución

“AntiPatterns”, de William J. Brown, Raphael C. Malveau, Hays W. “Skip” McCormick III, Thomas J. Mowbray. 1998, John Wiley & Sons Inc.

Historia

78 A pattern Language: Towns/Building/Construction

81 Smalltalk issue of Byte

87 Using Pattern Languages for Object-Oriented Programs

91 Advanced C++ Programming Styles and Idioms

PLoP 94'

A Development Process Generative Pattern Language”

Design Patterns: Elements of Reusable Object-Oriented Software

96 “Antipatterns: Vaccinations against Object Misuse”

97 Patterns and Software: Essential Concepts and Terminology

98 “Patterns in Java (volume 1)”

patterns = language smellhttp://c2.com/cgi/wiki?

AreDesignPatternsMissingLanguageFeatures

Triviales con 1st class functions

4 Strategy

4 Observer

4 Factory

4 Command

4 Template Method