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

Juan Pablo Bustos Urueña 20221020114

Paula Catalina Robayo Torres 20221020020

PATRONES DE DISEÑO
Los patrones de diseño en programación son soluciones probadas y documentadas para
problemas comunes que los desarrolladores enfrentan al diseñar software. Estos patrones
proporcionan pautas y enfoques generales para resolver problemas específicos de diseño de
manera efectiva y eficiente. Estos patrones no son un tipo de código concreto que se pueda
copiar y pegar, sino más bien conceptos e ideas que se pueden adaptar y aplicar según las
necesidades del proyecto.
Los patrones de diseño no son reglas estrictas, sino más bien guías flexibles. Los
desarrolladores pueden adaptarlos a las necesidades específicas de sus proyectos y
ajustarlos según las circunstancias. Utilizar patrones de diseño puede mejorar la calidad, la
reutilización y la mantenibilidad del código, ya que aprovechan las soluciones probadas y
ayudan a estructurar el diseño de manera más sólida.
PATRONES DE CREACION:
Estos patrones principalmente se basan en la creación de objetos mediante la reutilización
de código existente de tal manera de que se adecue a la situación presentada, gracias a esto
el programa obtiene más flexibilidad al momento de la creación de diferentes objetos.
1. Abstract Factory: Este patrón ofrece una interfaz para crear familias de objetos
relacionados sin la necesidad de especificar sus clases concretamente, este patrón
resulta bastante útil cuando es necesario crear objetas que se relacionan o siguen
ciertas dependencias entre sí.
2. Factory Method: El patrón factory method proporciona una interfaz la cual crea
objetos en una superclase para crear objetos, sin embargo, permite que las subclases
tengan la capacidad de alterar el tipo de objetos que se crean en las mismas, esto
permite la utilización de la encapsulación y la extensibilidad, ya que las subclases
deciden el tipo de clase que pueden instanciar.
3. Builder: Gracias a este patrón, se permite la creación de objetos bastante complejos
paso a paso, y en su mayoría, basándose en objetos simples ya existentes, es decir
este patrón permite producir representaciones y tipos de distintos objetos,
implementando el código de construcción de otros objetos más sencillos.
4. Prototype: Al momento de la creación de nuevos objetos, en la mayoría se opta por
iniciar desde 0, sin embargo, gracias a este patrón, se permite el uso de una
“clonación”, es decir, copiar objetos ya existentes sin la necesidad de que el código
de este objeto sea dependiente de sus clases.
5. Singleton: Por último, se tiene el singleton, este patrón garantiza que una clase
tenga una única instancia, además que proporciona un acceso global a esta única
instancia, gracias a esto se pueden controlar recursos compartidos o para centralizar
funcionalidades.
Juan Pablo Bustos Urueña 20221020114
Paula Catalina Robayo Torres 20221020020

PATRONES ESTRUCTURALES:
Los patrones estructurales en programación son un conjunto de patrones de diseño que se
enfocan en cómo componer objetos y clases para formar estructuras más grandes y
complejas. Estos patrones se centran en la organización y relación entre los objetos para
lograr una arquitectura más flexible, reutilizable y mantenible. Estos patrones estructurales
ayudan a mejorar la modularidad y la organización del código, permiten la reutilización de
componentes y facilitan el mantenimiento a medida que los sistemas crecen y evolucionan.
1. Adapter: Como lo indica su nombre el patrón adapter permite que dos interfaces y
objetos que son incompatibles entre si puedan trabajar de manera eficaz por medio
de un intermediario, comúnmente llamado como adaptador, es decir, este adaptador
permite que dos interfaces trabajen de forma conjunto, que de otra manera no sería
posible.
2. Bridge: Este patrón se basa en la utilización de un puente, que generalmente es una
interfaz la cual separa la abstracción de la implementación, es decir, existen dos
tipos de “jerarquías”, las cuales de esta manera se permite que ambas se puedan
desarrollar de una manera mas libre, eficiente e independientemente.
3. Composite: Gracias a este patrón se pueden agrupar objetos como si fueran un
único objeto, es decir, mediante una estructura similar a la de un árbol para después
trabajar con estas estructuras de varios objetos como si fueran un objeto individual.
4. Decorator: Con este patrón un objeto podrá ser “encapsulado” dentro de otros
objetos que contienen esta función, con esto el objeto encapsulado obtendrá varias
funcionalidades nuevas.
5. Facade: Este patrón proporciona una interfaz simple o simplificada para un grupo
de interfaces, frameworks, bibliotecas o cualquier otro tipo de clase o conjunto de
clases más complejas.
6. Flyweight: Para reducir el uso de memoria excesivo para mejorar el rendimiento
del programa, esto gracias a la reducción de objetos con este patrón, consiste en la
duplicación/reutilización de código de objetos que sean muy similares entre si en
lugar de crear objetos completamente nuevos
7. Proxy: Este patrón de diseño permite crear o implementar un sustituto para otro
objeto, es decir, este patrón controla el acceso al objeto original, permitiendo que
haya un espacio de acción entre que una solicitud llegue al objeto y otro después.
De esta forma, se puede evitar tener que crear más código para que cada clase que
quiera ingresar a el tenga que ejecutar algún código de inicialización ni tampoco,
que en caso de que el código del objeto original sea de terceros, sea imposible
acceder a el.
PATRONES DE COMPORTAMIENTO:
Los patrones de comportamiento están relacionados con el concepto de asignación de
responsabilidades entre clases y resaltan la colaboración entre objetos dentro de un
software.
Juan Pablo Bustos Urueña 20221020114
Paula Catalina Robayo Torres 20221020020

1. Chain of responsability: Como su mismo nombre lo indica, es una cadena, en este


caso de comprobación de solicitudes, se usan generalmente cuando se necesitan
hacer varios pasos de verificación para el acceso a un sistema, el funcionamiento de
este, se centra en transformar comportamientos particulares en objetos autónomos
llamados manejadores. Este patrón es el que indica que se vinculen estos
manejadores como una cadena, en donde cada uno de estos, tiene una referencia al
siguiente dentro de la cadena, de esta forma, una solicitud dentro de un sistema viaja
por toda la cadena de tal forma que todos los manejadores han tenido la oportunidad
de procesarla.
2. Command: Este patrón de diseño, convierte una solicitud en un objeto que contiene
toda la información de la solicitud, esto hace que sea posible parametrizar los
métodos con las diferentes solicitudes que sean ingresadas, así la interfaz del
usuario no se comunica directamente con la lógica, sino que es enviada como objeto
a una clase comando que activa cierta función de la lógica dependiendo de la
solicitud.
3. Iterator: En la programación, es posible guardar en objetos y datos en general en
diferentes tipos de colecciones, es fácil acceder a un objeto especifico de estas
simplemente recorriéndolas en caso de que habláramos de una lista o arreglo, sin
embargo, tenemos que tener en cuenta que las colecciones de datos se pueden
presentar de diferentes formas, por lo que seria un poco más complicado acceder a
estos datos intentado recorrer de la misma forma que se recorre una lista, para este
tipo de casos es que usamos el patrón iterator, el cual extrae el comportamiento de
recorrido de una colección y colocarlo en un objeto independiente llamado iterador,
este objeto encapsula los detalles del recorrido, la posición y la cantidad que
quedan.
4. Mediator: Su propósito es reducir las dependencias entre objetos, este restringe
las comunicaciones que se hagan de forma directa entre objetos, haciendo que estos
solo se puedan comunicar a través de un objeto mediador.
5. Memento: Es un patron de diseño de comportamiento que da la posibilidad de
guardar y resturar el estado anterior de un objeto sin revelar necesariamente los
detalles de su implementación .Es decir, este patrón, suguiere almacenar la copia del
estado de un objeto en uno especial llamada memento, cuyos contenidos son solo
accesibles para aquel que lo produjo.
6. Observer: Permite crear un mecanismo o método de suscripción que le notifica a
varios objetos sobre cualquier evento o modificación que le suceda a un objeto en
específico. Este consta básicamente en la creación de una colección de objetos que
están interesados del estado de otro y un método de notificación que recorre toda
esta colección y les notifica a los objetos suscritos de cualquier cambio del estado.
7. State: Permite a un objeto alterar su comportamiento cuando su estado interno
cambia, es como si el objeto cambiara de clase. Este patrón sugiere crear nuevas
clases para cada estado posible de un objeto y extraer todos los comportamientos
específicos del estado para colocarlos dentro de esas clases.
Juan Pablo Bustos Urueña 20221020114
Paula Catalina Robayo Torres 20221020020

8. Strategy: Este patrón de comportamiento ayuda con la catalogación de algoritmos


en diferentes familias dependiendo de su función y coloca a cada uno de ellos en
una clase separada y hacer sus objetivos intercambiables. A cada algoritmo se le
denomina estrategia y generalmente es asignada como atributo a cierta clase que va
a determinar en esta la forma en la que se ejecutara cierta acción.
9. Template Method: Este patrón define la estructura principal de un algoritmo en la
superclase, sin embargo, permite que las subclases sobrescriban pasos extra del
algoritmo sin tener que modificar su estructura. Es decir, para implementar un
algoritmo que hasta cierto punto es similar o puede ser de utilidad para cierta clases,
se divide este en pasos y estos pasos los declaramos como métodos y los colocamos
en un solo método que denominado “método plantilla”.
10. Visitor: Es un patrón que separa un determinado algoritmo de la estructura del
objeto en el que se ejecuta. Es decir, representa una forma de añadir otras
operaciones a las estructuras de los objetos ya existentes sin modificar sus
estructuras. Por lo que también es posible añadir que este patrón tiene su base en el
principio de abierto cerrado de la programación orientada a objetos

También podría gustarte