FACULTAD DE INGENIERIA
INGENIERIA DE SISTEMAS
E INFORMATICA
SEMESTRE : 2018-I
1. Definiciones…………………………..………………………………………..…..3
2. Características de un Patrón…...………………………………….…………...4
3. Objetivos…………………...……………………………………………………....4
4. Anti-Patrones………………………………………………………………….…...5
5. Categorías de Patrón…..……………………………………………..................5
6. Clasificación de los Patrones………………………………………………......5
6.1. Patrones Creacionales…….……………………………………….…..6
6.2. Patrones Estructurales...….…………………………………….……10
6.2.1. Otros Patrones Estructurales………….………………….12
6.3. Patrones de Comportamiento…….…………………………….......14
6.3.1. Otros Patrones de Comportamiento……………………..17
6.4. Otros Patrones de Diseño…...…….…………………………….......20
7. Referencias Bibliográficas……………………………………………………..22
8. Índice de Ilustraciones………………………………………………………….23
9. Índice de Tablas………………………………………………………………….24
PATRONES DE DISEÑO
1) DEFINICIONES
“Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno,
para luego describir la solución a ese problema, de tal manera que esa solución
pueda ser usada más de un millón de veces sin pensarlo o hacerlo siquiera dos
veces de la misma forma”
“Los patrones de diseño, son unos diseños básicos de clases e interfaces, aplicables a
cualquier lenguaje orientado a objetos (c++, c#, java, php, javascript, aunque este último,
lo de los objetos es muy especial), para solucionar ciertos tipos de problemas.”
“Un patrón de diseño es una solución general repetible a un problema común en el diseño
de software. Un patrón de diseño no es un diseño terminado que se puede transformar
directamente en código. Es una descripción o plantilla de cómo resolver un problema que
se puede utilizar en muchas situaciones diferentes.”
“Los patrones de diseño son técnicas para resolver problemas comunes en el desarrollo
de software. Un patrón de diseño resulta ser una solución a un problema de diseño.”
2) CARACTERISTICAS DE UN PATRON
Solución: conjunto de medidas que se han de tomar, como crear alguna clase,
atributo o método, nuevos comportamientos entre clases.
Reutilización
Facilidad de modificación
Facilidad de comprensión
Robustez
Eficiencia
Facilidad de uso
3) OBJETIVOS
4) ANTIPATRONES
“Son unos patrones de diseño que siempre dan una mala solución al problema.”
“El Anti-patrón es una forma literaria que describe una solución común a un problema
que genera consecuencias decididamente negativas.”
5) CATEGORIAS DE PATRONES
(Wikipedia, 2018) dice también que según la escala o nivel de abstracción se pueden
clasificar en:
Los patrones de diseño pueden clasificarse según el tipo de problema que solucionan:
Interpreter
Factory Adapter
Clase Template
Method (De clases)
Method
Chain of
Responsibility
Adapter
Comand
Abstract Brigde
Iterator
Factory Composite
Mediator
Objeto Builder Decorator
Memento
Prototype Facade
Observer
Singleton Flyweight
State
Proxy
Strategy
Visitor
El algoritmo para crear un objeto complejo debe ser independiente de las partes
que componen el objeto y cómo estos están ensamblados.
Ilustración 2: Builder
Una clase no puede anticipar el tipo de objeto que ésta debe crear.
D) PROTOTYPE: Especifica los tipos de objetos a crear por medio de una instancia
prototípica, y crea nuevos objetos mediante clonación basados en una plantilla de objetos
existentes.
E) SINGLETON: Garantiza que una clase sólo tenga una instancia, y proporciona un
punto de acceso global a ella.
Deba existir exactamente una instancia de una clase y ésta deba ser accesible por
los clientes desde un lugar bien conocido.
Ilustración 5: Singleton
Ilustración 6: Decorator
Ilustración 8: Bridge
ADAPTER: Convierte la interfaz de una clase en otra distinta que es la que esperan los
clientes. Permiten que cooperen clases que de otra manera no podrían por tener interfaces
incompatibles.
Ilustración 9: Adapter
Los cambios de estado en uno o más objetos deben dar lugar a comportamiento
en otros objetos.
B) STATE: Permite que un objeto modifique su comportamiento cada vez que cambia
su estado interno. Parecerá que cambia la clase del objeto. Se utiliza cuando el
comportamiento de un objeto cambia dependiendo del estado del mismo.
MVC
Este patrón permite separar una aplicación en 3 capas (Modelo, Vista, Controlador), una
forma de organizar y de hacer escalable un proyecto.
EJEMPLO PRACTICO
El usuario quiere ver los clientes con apellido Álvarez, la petición va al controlador y el
se encarga de utilizar el modelo adecuado y devolver ese modelo a la vista.
Si te das cuenta en ningún momento interactúan directamente la vista con el modelo, esto
también mantiene la seguridad en una aplicación.
ESTRUCTURA DE UN PROYECTO
DAO
“Este patrón es netamente el acceso a los datos, que básicamente tiene que ver con la
gestión de diversas fuentes de datos y además abstrae la forma de acceder a ellos.”
EJEMPLO PRACTICO
Imagínate que tienes un sistema montado en producción con una base de datos MySQL
y de pronto lo debes cambiar a PostgreSQL o a cualquier otro motor de base de datos.
Este patrón precisamente lo soluciona, al tener una aplicación que no esté ligada al acceso
a datos, que si por ejemplo la parte de la vista pide encontrar los clientes con compras
mensuales mayores $ 200, el DAO se encargue de traer esos datos independientemente si
está en un archivo o en una base de datos.
ESTRUCTURA DE UN PROYECTO
7) REFERENCIAS BIBLIOGRÁFICAS
8) INDICE DE ILUSTRACIONES
9) INDICE DE TABLAS