Está en la página 1de 6

INSTITUTO TECNOLGICO SUPERIOR DEL SUR

DEL ESTADO DE YUCATN

INGENIERA EN SISTEMAS COMPUTACIONALES

TRABAJO:
INVESTIGAR SOBRE LOS PATRONES DE CREACIN,
ESTRUCTURALES Y DE COMPORTAMIENTO.

PRESENTA:
FRANCISCO JAVIER CASTRO KU

ASIGNATURA:
ARQUITECTURA Y DISEO DE SW

MAESTRO:
ING. DAVID AVILS POOT
FECHA:
29 DE ABRIL DEL 2015

Patrones creacionales
Corresponden a patrones de diseo software que solucionan problemas de
creacin de instancias. Inicializacin y configuracin de objetos. 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. A continuacin se
muestra un ejemplo de este patrn:

class ConcreteCreator extends Creator{


protected Product FactoryMethod(){
return new ConcreteProduct();
}
}
interface Product{...}
class ConcreteProduct implements Product{...}

public class Client{


public static void main(String args[])
{
Creator UnCreator;
UnCreator = new ConcreteCreator();
UnCreator.AnOperations();
}
}

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. A continuacin se muestra un ejemplo de este patrn:

public sealed class Singleton


{
private static volatile Singleton instance;
private static object syncRoot = new Object();
private Singleton()
{
System.Windows.Forms.MessageBox.Show("Nuevo Singleton");
}
public static Singleton GetInstance
{
get
{
if (instance == null)
{
lock(syncRoot)
{
if (instance == null)
instance = new Singleton();
}
}
return instance;
}
}

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 interaccionar con el usuario.

Caractersticas:

Abstraen el proceso de instanciacin.


Hacen al sistema independiente de las creaciones de objetos.
Encapsulan conocimiento sobre las clases concretas usadas por el

sistema.
Ocultan la forma en que se crean y ponen en contacto las instancias.
No son siempre excluyentes: a veces complementarios.
Patrones estructurales

Separan la interfaz de la implementacin. Se ocupan de cmo las clases y objetos


se agrupan, para formar estructuras ms grandes.
Son los patrones de diseo software que solucionan problemas de composicin
(agregacin) de clases y objetos:

Adapter o Wrapper (Adaptador o Envoltorio): Adapta una interfaz para que


pueda ser utilizada por una clase que de otro modo no podra utilizarla.

Bridge (Puente): Desacopla una abstraccin de su implementacin.

Composite (Objeto compuesto): Permite tratar objetos compuestos como si


de un simple se tratase.

Decorator (Decorador): Aade funcionalidad a una clase dinmicamente.

Facade (Fachada): Provee de una interfaz unificada simple para acceder a


una interfaz o grupo de interfaces de un subsistema.

Flyweight (Peso ligero): Reduce la redundancia cuando gran cantidad de


objetos poseen idntica informacin.

Proxy: Mantiene un representante de un objeto.

Mdulo: Agrupa varios elementos relacionados, como clases, singletons, y


mtodos, utilizados globalmente, en una entidad nica.
Patrones de comportamiento

Ms que describir objetos o clases, describen la comunicacin entre ellos.


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:

Chain of Responsibility (Cadena de responsabilidad): Permite establecer


la lnea que deben llevar los mensajes para que los objetos realicen la tarea
indicada.

Command (Orden): Encapsula una operacin en un objeto, permitiendo


ejecutar dicha operacin sin necesidad de conocer el contenido de la misma.

Interpreter (Intrprete): Dado un lenguaje, define una gramtica para dicho


lenguaje, as como las herramientas necesarias para interpretarlo.

Iterator (Iterador): Permite realizar recorridos sobre objetos compuestos


independientemente de la implementacin de estos.

Mediator (Mediador): Define un objeto que coordine la comunicacin entre


objetos de distintas clases, pero que funcionan como un conjunto.

Momento (Recuerdo): Permite volver a estados anteriores del sistema.

Observer (Observador): Define una dependencia de uno-a-muchos entre


objetos, de forma que cuando un objeto cambie de estado se notifique y
actualicen automticamente todos los objetos que dependen de l.

State (Estado): Permite que un objeto modifique su comportamiento cada


vez que cambie su estado interno.

Strategy (Estrategia): Permite disponer de varios mtodos para resolver un


problema y elegir cul utilizar en tiempo de ejecucin.

Template Method (Mtodo plantilla): Define en una operacin el esqueleto


de un algoritmo, delegando en las subclases algunos de sus pasos, esto
permite que las subclases redefinan ciertos pasos de un algoritmo sin cambiar
su estructura.

Visitor (Visitante): Permite definir nuevas operaciones sobre una jerarqua


de clases sin modificar las clases sobre las que opera.

También podría gustarte