Buscar

upc-pre-si720-design-patterns-intro_v1

Prévia do material em texto

SI720 | Diseño y Patrones de Software
PREGRADO
SOFTWARE DESIGN PATTERNS
AGENDA
CONCEPT
EVOLUTION
GOF DESIGN PATTERNS
¿Qué entiendes por pattern
(patrón)?
Podría definirse pattern (patrón) como aquella
serie de variables y constantes identificables
dentro de un conjunto mayor de datos.
Pattern
¿Qué es un pattern 
language?
Pattern Language
A Pattern Language: Towns, Buildings, Construction
Christopher Alexander, 1977
“A method of describing good design practices within a field of expertise”
Pattern Language
AGENDA
CONCEPT
EVOLUTION
GOF DESIGN PATTERNS
Software Design Pattern
Kent Beck
Ward Cunningham
Pattern Language in Programming | OOPSLA Conference
(Object-Oriented Programming, Systems, Languages & Applications)
1987
1987
Software Design Pattern
Pattern Language in Programming | OOPSLA Conference 1987
(Object-Oriented Programming, Systems, Languages & Applications)
“A pattern language guides a designer by providing workable 
solutions to all of the problems known to arise in the course of 
design. It is a sequence of bits of knowledge written in a style and 
arranged in an order which leads a designer to ask (and answer) 
the right questions at the right time.”
1987
Software Design Pattern
Pattern Language in Programming | OOPSLA Conference 1987
SmallTak UI Design 
Patterns
Window Per Task
Few Panes Per Window
Standard Panes
Short Menus
Nouns and Verbs
1987
Software Design Pattern
Erick
Gang of Four (GoF)
1994
Richard Ralph John
1994
Software Design Pattern
- Gang of Four (GoF)
1994
“A pattern is a solution to a 
problem in a context “
1994
GoF Design Patterns
Creational
Builder
Factory 
Method
Prototype
Singleton
Structural
Adapter
Bridge
Composite
Decorator
Façade
Flyweight
Proxy
Behavioral
Chain of 
responsibility
Command
Interpreter
Iterator
Mediator
Memento
Observer
States
Strategy
Template Method
Visitor
1995
Software Design Patterns
Deepak 
Alur
John Crupi Dan Malks
Book, 2001
Prototyping Patterns for the J2EE Platform 
JavaOne conference, 2000
2001
Core J2EE Patterns
Presentation 
Tier
Intercepting 
Filter
Front Controller
View Helper
Composite View
Service to 
Worker
Dispatcher View
Business Tier
Business 
Delegate
Value Object
Session Facade
Composite Entity
Value Object 
Assembler
Value List 
Handler
Service Locator
Integration Tier
Data Access Object
Service Activator
2001
Software Design Pattern
Robert C. Martin
2002
2002
Software Design Patterns
Martin Fowler
2002
2002
Enterprise App Design Patterns 2002
Enterprise App Design Patterns
Web Presentation
Model View 
Controller
Page Controller
Front Controller
Template View
Transform View
Two-Step View
Application Controller
Distribution
Remote Façade
Data Transfer Object
Offline Concurrency
Optimistic Offline 
Lock
Pessimistic Offline 
Lock
Coarse Grained Lock
Implicit Lock
Session State
Client Session 
State
Server Session 
State
Database Session 
State
Base
Gateway
Mapper
Layer Supertype
Separated Interface
Registry
Value Object
Money
Special Case
Plugin
Service Stub
Record Set
2002
Software Design Patterns
Russ Olsen
2008
2008
Ruby Design Patterns
GoF
Template 
Method
Strategy
Observer
Composite
Iterator
Command
Adapter
Proxy
Decorator
Singleton
Factory
Builder
Interpreter
Ruby
Domain-Specific Languages
Meta-programming
Convention Over 
Configuration
2008
Software Design Patterns
Dhrubojyoti Kayal
2008
2008
Spring-based App Design Patterns 2008
2015
2016
Markus Eisele
2016
2018
AGENDA
CONCEPT
EVOLUTION
GOF DESIGN PATTERNS
History
Son soluciones exitosas a problemas comunes
Interface
Implements
Por ejemplo
Beneficios
Proporcionan elementos reusables en el diseño de sistemas software, lo que significa que es 
aplicable a diferentes problemas de diseño en distintas circunstancias.
Efectividad comprobada en la resolución de problemas similares en ocasiones anteriores.
Formalizan un vocabulario común entre diseñadores.
Estandarizan el diseño, lo que beneficia notablemente a los desarrolladores.
Facilitan el aprendizaje de las nuevas generaciones de diseñadores y desarrolladores utilizando 
conocimiento ya existente.
Entonces, ¿estás listo para aprender sobre 
patrones de diseño?
Types
GoF Design Patterns
Creational
Builder
Factory 
Method
Prototype
Singleton
Structural
Adapter
Bridge
Composite
Decorator
Façade
Flyweight
Proxy
Behavioral
Chain of 
responsibility
Command
Interpreter
Iterator
Mediator
Memento
Observer
States
Strategy
Template Method
Visitor
•
•
•
•
•
RESUMEN
Recordemos
•
•
•
REFERENCIAS
Para profundizar
PREGRADO

Continue navegando