Fransisco Castro

7
INSTITUTO TECNOLÓGICO SUPERIOR DEL SUR DEL ESTADO DE YUCATÁN INGENIERÍA EN SISTEMAS COMPUTACIONALES TRABAJO: INVESTIGAR SOBRE LOS PATRONES DE CREACIÓN, ESTRUCTURALES Y DE COMPORTAMIENTO. PRESENTA: FRANCISCO JAVIER CASTRO KU ASIGNATURA: ARQUITECTURA Y DISEÑO DE SW MAESTRO: ING. DAVID AVILÉS POOT

description

patrones creacionales

Transcript of Fransisco Castro

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 2015Patrones creacionalesCorresponden 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 dearquitectura de softwareque separa losdatosy lalgica de negociode una aplicacin de lainterfaz de usuarioy el mdulo encargado de gestionar los eventos y las comunicaciones. Este patrn plantea la separacin del problema en tres capas: la capamodel, que representa la realidad; la capacontroller,que conoce los mtodos y atributos del modelo, recibe y realiza lo que el usuario quiere hacer; y la capavista, 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 estructuralesSeparan 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 comportamientoMs 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.