Documente Academic
Documente Profesional
Documente Cultură
DEFINICIONES
1) Los patrones de diseo son una tcnica para resolver problemas comunes
en el desarrollo de software y otros mbitos referentes al diseo de
interaccin o interfaces. Un patrn de diseo resulta ser una solucin a un
problema de diseo. Para que una solucin sea considerada un patrn debe
poseer ciertas caractersticas. Una de ellas es que debe haber comprobado
su efectividad resolviendo problemas similares en ocasiones anteriores. Otra
es que debe ser reutilizable, lo que significa que es aplicable a diferentes
problemas de diseo en distintas circunstancias.
TIPOS
Clasificacin de los patrones Segn su propsito:
De creacin: conciernen al proceso de creacin de objetos.
De estructura: tratan la composicin de clases y/o objetos.
De comportamiento: caracterizan las formas enlas que interactan y reparten
responsabilidades las distintas clases u objetos.
Pues bien, dependiendo del problema al que nos enfrentemos, podemos agrupar
los patrones en tres grandes grupos:
Patrones de creacin. Estos patrones se utilizan cuando debemos crear
objetos, pero debemos tomar decisiones dinmicamente en el proceso de
creacin. Para sto lo que hacemos es abstraer el proceso de creacin de
los objetos para realizar la decisin de qu objetos crear o cmo crearlos
para el momento en que se tenga que hacer. Patrones de creacin son:
Abstract Factory, Builder, Factory Method, Object Pool, Prototype y
Singleton.
Patrones estructurales. Nos describen como utilizar estructuras de datos
complejas a partir de elementos ms simples. Sirven para crear las
interconexiones entre los distintos objetos y que estas relaciones no se vean
afectadas por cambios en los requisitos del programa. Algunos ejemplos de
patrones estructurales son: Adapter, Bridge, Decorator, Facade, Flyweight y
Proxy.
Patrones de comportamiento. Fundamentalmente especifican el
comportamiento entre objetos de nuestro programa. Hay varios: Chain of
Responsability, Command, Interpreter, Iterator, Mediator, Memento (o
Snapshot), Observer, State, Strategy, Template Method y Visitor.
Patrones creacionales
Corresponden a patrones de diseo de software que solucionan problemas de
creacin de instancias. Nos ayudan a encapsular y abstraer dicha creacin:
Object Pool (no pertenece a los patrones especificados por GoF): se
obtienen objetos nuevos a travs de la clonacin. Utilizado cuando el costo
de crear una clase es mayor que el de clonarla. Especialmente con objetos
muy complejos. Se especifica un tipo de objeto a crear y se utiliza una interfaz
del prototipo para crear un nuevo objeto por clonacin. El proceso de
clonacin se inicia instanciando un tipo de objeto de la clase que queremos
clonar.
Abstract Factory (fbrica abstracta): permite trabajar con objetos de distintas
familias de manera que las familias no se mezclen entre s y haciendo
transparente el tipo de familia concreta que se est usando. El problema a
solucionar por este patrn es el de crear diferentes familias de objetos, como
por ejemplo, la creacin de interfaces grficas de distintos tipos (ventana,
men, botn, etc.).
Builder (constructor virtual): abstrae el proceso de creacin de un objeto
complejo, centralizando dicho proceso en un nico punto.
Factory Method (mtodo de fabricacin): centraliza en una clase constructora
la creacin de objetos de un subtipo de un tipo determinado, ocultando al
usuario la casustica, es decir, la diversidad de casos particulares que se
pueden prever, para elegir el subtipo que crear. Parte del principio de que las
subclases determinan la clase a implementar.
Prototype (prototipo): crea nuevos objetos clonndolos de una instancia ya
existente.
Singleton (instancia nica): garantiza la existencia de una nica instancia
para una clase y la creacin de un mecanismo de acceso global a dicha
instancia. Restringe la instanciacin de una clase o valor de un tipo a un solo
objeto.
Model View Controller (MVC) En espaol: Modelo Vista Controlador. Es un
patrn de arquitectura de software que separa los datos y la lgica de
negocio de una aplicacin de la interfaz de usuario y el mdulo encargado de
gestionar los eventos y las comunicaciones. Este patrn plantea la
separacin del problema en tres capas: la capa model, que representa la
realidad; la capa controller , que conoce los mtodos y atributos del modelo,
recibe y realiza lo que el usuario quiere hacer; y la capa vista, que muestra
un aspecto del modelo y es utilizada por la capa anterior para interactuar con
el usuario.
Patrones estructurales
Son los patrones de diseo software que solucionan problemas de composicin
(agregacin) de clases y objetos:
Patrones de comportamiento
Se definen como patrones de diseo software que ofrecen soluciones respecto a la
interaccin y responsabilidades entre clases y objetos, as como los algoritmos que
encapsulan:
Patrones Creacionales
Estos patrones brindan las siguientes caractersticas:
Instanciacin genrica: permite que los objetos sean creados dentro del sistema
sin especificar clases concretas en el cdigo.
Simplicidad: algunos patrones facilitan la creacin de objetos, evitando que el
cliente deba tener cdigo complejo sobre como instanciar un determinado objeto.
Restricciones creacionales: algunos patrones ayudan a establecer restricciones
sobre la creacin de objetos, tales como qu objeto crear, cundo, cmo, etc.
Patrones estructurales
La flexibilidad aadida mediante la composicin de objetos viene dada por la
capacidad de cambiar la composicin en tiempo de ejecucin, que es imposible con
la composicin de clases.
Ejemplos tpicos son cmo comunicar dos clases incompatibles o cmo
aadir funcionalidad a objetos.
Patrones de comportamiento
Estos patrones se focalizan en el flujo de control dentro de un sistema. Ciertas
formas de organizar los controles dentro del sistema pueden llevar a grandes
beneficios en cuanto a mantenibilidad y eficiencia.