Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

REPUBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA

UNIVERSIDAD NACIONAL EXPERIMENTAL DE LAS FUERZAS ARMADAS


(UNEFA)

UNIDAD CURRICULAR: ARQUITECTURA DE SOFTWARE

ING. DE SISTEMAS 7MO SEMESTRE.

PATRON
ES DE
DISEÑO
DE
SOFTW
ARE
Facilitador: Ing. Alexis Martínez Bachiller:

Leandro Rengel C.I: 29.683.412


¿Qué es un patrón de diseño?
Son soluciones habituales a problemas que ocurren con frecuencia en el diseño de
software. Son como planos prefabricados que se pueden personalizar para resolver un
problema de diseño recurrente en tu código.

No se puede elegir un patrón y copiarlo en el programa como si se tratara de funciones o


bibliotecas ya preparadas. El patrón no es una porción específica de código, sino un
concepto general para resolver un problema particular. Puedes seguir los detalles del
patrón e implementar una solución que encaje con las realidades de tu propio programa.

A menudo los patrones se confunden con algoritmos porque ambos conceptos describen
soluciones típicas a problemas conocidos. Mientras que un algoritmo siempre define un
grupo claro de acciones para lograr un objetivo, un patrón es una descripción de más alto
nivel de una solución. El código del mismo patrón aplicado a dos programas distintos
puede ser diferente.

Una analogía de un algoritmo sería una receta de cocina: ambos cuentan con pasos claros
para alcanzar una meta. Por su parte, un patrón es más similar a un plano, ya que puedes
observar cómo son su resultado y sus funciones, pero el orden exacto de la
implementación depende del programador.

¿En qué consiste el patrón?


La mayoría de los patrones se describe con mucha formalidad para que la gente pueda
reproducirlos en muchos contextos. A continuación tenemos las secciones que suelen
estar presentes en la descripción de un patrón:

 El propósito del patrón explica brevemente el problema y la solución.


 La motivación explica en más detalle el problema y la solución que brinda el
patrón.
 La estructura de las clases muestra cada una de las partes del patrón y el modo en
que se relacionan.
 El ejemplo de código en uno de los lenguajes de programación populares facilita la
asimilación de la idea que se esconde tras el patrón.

Algunos catálogos de patrones enumeran otros detalles útiles, como la aplicabilidad del
patrón, los pasos de implementación y las relaciones con otros patrones.

Clasificación de los patrones


Los patrones de diseño varían en su complejidad, nivel de detalle y escala de aplicabilidad
al sistema completo que se diseña. Los patrones más básicos y de más bajo nivel suelen
llamarse idioms. Normalmente se aplican a un único lenguaje de programación.

Los patrones más universales y de más alto nivel son los patrones de arquitectura. Los
desarrolladores pueden implementar estos patrones prácticamente en cualquier lenguaje.
Al contrario que otros patrones, pueden utilizarse para diseñar la arquitectura de una
aplicación completa.

Además, todos los patrones pueden clasificarse por su propósito.

 Los patrones creacionales proporcionan mecanismos de creación de objetos que


incrementan la flexibilidad y la reutilización de código existente.
 Los patrones estructurales explican cómo ensamblar objetos y clases en
estructuras más grandes a la vez que se mantiene la flexibilidad y eficiencia de la
estructura.
 Los patrones de comportamiento se encargan de una comunicación efectiva y la
asignación de responsabilidades entre objetos.

Patrones creacionales
Factory Method

Proporciona una interfaz para la creación de objetos en una superclase, mientras permite
a las subclases alterar el tipo de objetos que se crearán.

Abstract Factory

Permite producir familias de objetos relacionados sin especificar sus clases concretas.

Builder

Permite construir objetos complejos paso a paso. Este patrón nos permite producir
distintos tipos y representaciones de un objeto empleando el mismo código de
construcción.

Prototype

Permite copiar objetos existentes sin que el código dependa de sus clases.

Singleton

Permite asegurarnos de que una clase tenga una única instancia, a la vez que proporciona
un punto de acceso global a dicha instancia.
Patrones estructurales
Adapter

Permite la colaboración entre objetos con interfaces incompatibles.

Bridge

Permite dividir una clase grande o un grupo de clases estrechamente relacionadas, en dos
jerarquías separadas (abstracción e implementación) que pueden desarrollarse
independientemente la una de la otra.

Composite

Permite componer objetos en estructuras de árbol y trabajar con esas estructuras como si
fueran objetos individuales.

Decorator

Permite añadir funcionalidades a objetos colocando estos objetos dentro de objetos


encapsuladores especiales que contienen estas funcionalidades.

Facade

Proporciona una interfaz simplificada a una biblioteca, un framework o cualquier otro


grupo complejo de clases.

Flyweight

Permite mantener más objetos dentro de la cantidad disponible de memoria RAM


compartiendo las partes comunes del estado entre varios objetos en lugar de mantener
toda la información en cada objeto.

Proxy

Permite proporcionar un sustituto o marcador de posición para otro objeto. Un proxy


controla el acceso al objeto original, permitiendo hacer algo antes o después de que la
solicitud llegue al objeto original.

Patrones de comportamiento
Chain of responsibility
Permite pasar solicitudes a lo largo de una cadena de manejadores. Al recibir una
solicitud, cada manejador decide si la procesa o si la pasa al siguiente manejador de la
cadena.

Command

Convierte una solicitud en un objeto independiente que contiene toda la información


sobre la solicitud. Esta transformación permite parametrizar los métodos con diferentes
solicitudes, retrasar o poner en cola la ejecución de una solicitud y soportar operaciones
que no se pueden realizar.

Iterator

Es un patrón de diseño de comportamiento que te permite recorrer elementos de una


colección sin exponer su representación subyacente (lista, pila, árbol, etc.).

Mediator

Es un patrón de diseño de comportamiento que te permite reducir las dependencias


caóticas entre objetos. El patrón restringe las comunicaciones directas entre los objetos,
forzándolos a colaborar únicamente a través de un objeto mediador.

Memento

Es un patrón de diseño de comportamiento que te permite guardar y restaurar el estado


previo de un objeto sin revelar los detalles de su implementación.

Observer

Es un patrón de diseño de comportamiento que te permite definir un mecanismo de


suscripción para notificar a varios objetos sobre cualquier evento que le suceda al objeto
que están observando.

State

Es un patrón de diseño de comportamiento que permite a un objeto alterar su


comportamiento cuando su estado interno cambia. Parece como si el objeto cambiara su
clase.

Strategy

Es un patrón de diseño de comportamiento que te permite definir una familia de


algoritmos, colocar cada uno de ellos en una clase separada y hacer sus objetos
intercambiables.
Template Method

Es un patrón de diseño de comportamiento que define el esqueleto de un algoritmo en la


superclase pero permite que las subclases sobrescriban pasos del algoritmo sin cambiar su
estructura.

Visitor

Es un patrón de diseño de comportamiento que te permite separar algoritmos de los


objetos sobre los que operan.

También podría gustarte