Está en la página 1de 28

Miranda Hernndez Areli No.

control : 08210780 Programacin Avanzada

Son descripciones de las comunicaciones de objetos y clases que son personalizadas para resolver un problema general de diseo en un contexto particular. Los patrones de diseo se pueden utilizar en cualquier lenguaje de programacin orientado a objetos, adaptando los diseos generales a las caractersticas de la implementacin particular.

Este patrn asegura que slo una instancia de la clase sea creada. Todos los objetos que usan una instancia de esa clase, usan la misma instancia.

Define una interface para crear objetos, dejando a las subclases decidir la clase especfica. Permite delegar la responsabilidad de la instanciacin a las subclases.

Proporciona un Interfaz para crear familias de objetos sin especificar su clase de forma concreta. Si deseamos que nuestro software funcione sobre distintos recursos debemos abstraer las libreras utilizadas proporcionando una Interfaz comn.

Separa la construccin de un objeto complejo de su representacin para que el mismo proceso de construccin pueda dar lugar a diferentes representaciones.

Sinopsis ` Permite a un objeto crear objetos personalizados sin conocer su clase o detalles de cmo crearlos. ` Para especificar los tipos de objetos a crear, se usa una instancia prototpica y se crean nuevos objetos copiando el prototipo. Motivacin ` Adaptar un FW para editores grficos con parejas botn/objeto. ` Cada botn debe crear un tipo de objeto.

Convierte la interfaz de una clase en la que otra espera. Adapter permite que clases trabajen juntas cosa que no sera posible directamente debido a la incompatibilidad de sus interfaces.

Separa abstraccin e implementacin, as ambas pueden variar de forma independiente.

Compone objetos dentro de unas estructura arborescente con el que se representa una jerarqua parte-todo. El uso de este patrn permite tratar objetos individuales y composiciones uniformemente.

Proporciona una interfaz unificada a un conjunto de interfaces de un sistema. Facade define una interfaz de alto nivel que hace al sistema ms fcil de usar.

Uso de la comparticin para gestionar un gran nmero de objetos de grano-fino de forma eficiente.

Evita ligar al emisor de una peticin y al receptor de la misma dando a ms de un objeto la posibilidad de gestionar la peticin. Encadena los objetos receptores y va pasando las peticiones a lo largo de la cadena hasta que un objeto la maneje.

Encapsula peticiones como objetos, as permite parametrizar clientes con diferentes peticiones, auditar peticiones y deshacer operaciones.

Dado un lenguaje, define una representacin para su gramtica junto con un interprete que usa la representacin para interpretar sentencias del lenguaje.

Proporciona una forma de acceder a los elementos de un objeto compuesto secuencialmente sin conocer su diseo.

Este es un patrn fundamental de tipo estructural. Indica cundo no usar herencia. La delegacin es una forma de extender y reutilizar la funcionalidad de una clase, escribiendo una clase adicional con funcionalidad extra que usa instancias de la clase original para proveer su propia funcionalidad. La delegacin es una forma de extender el comportamiento de una clase mediante llamadas a mtodos de otra clase, ms que heredando de ella. La delegacin es ms apropiada que la herencia en muchas situaciones. Por ejemplo, la herencia es til para modelar relaciones de tipo es-un o es-una, ya que estos tipos de relaciones son de naturaleza esttica. Sin embargo, relaciones de tipo esun-rol-ejecutado-por son mal modeladas con herencia. En este tipo de relaciones, instancias de una clase pueden jugar mltiples roles.

Permite a una clase usar datos y servicios provistos por otras clases independientes proveyendo un acceso uniforme.

Evita que se modifique el estado de la clase. Es un patrn fundamental de concurrencia. Reduce el costo de los accesos concurrentes Evita la necesidad de sincronizar threads.

Utilidad Sirve para indicar atributos semnticos de una clase. Ventajas: Se puede preguntar si un objeto pertenece a una clase de un determinado tipo o no. Habitualmente se utiliza en clases de utilidades que tienen que determinar algo sobre objetos sin asumir que son instancias de una determinada clase o no.

Se requiere que las llamadas a mtodos de un objeto ocurran indirectamente a travs de un objeto sustituto del objeto original, delegando luego las llamadas a los mtodos de los objetos respectivos. El objeto proxy, comparte la misma interfaz o superclase que el objeto delegado.

También podría gustarte