Subido por Miguel Reyes

Patrones de Programación: Introducción y Clasificación

Anuncio
REPUBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN UNIVERSITARIA
U.P.T. DE LOS ALTOS MIRANDINOS “CECILIO ACOSTA”
P.N.F. EN INFORMÁTICA
INTRODUCCIÓN A LOS PATRONES
Docente:
Richard Blanco.
Integrante(s):
Miguel Angel Reyes Tovar
V- 20.746.494
Sección III – Trayecto III
Los Teques, 25 de febrero de 2025
1
Índice
Introducción .................................................................................................................................. 3
Patrones de programación. .................................................................................. 4
Importancia de los patrones de programación ................................................... 4
Ventajas de los patrones de programación ........................................................ 5
Desventajas de los patrones de programación .................................................. 6
Patrón MVC ............................................................................................................ 6
1.
Modelo (datos) ............................................................................................ 7
2.
Vista (IU) ...................................................................................................... 8
3.
Controlador (Cerebro) ................................................................................ 9
Clasificación de los patrones de diseño según su propósito ......................... 10
1.
Patrones de Creación:.............................................................................. 10
2.
Patrones Estructurales: ........................................................................... 11
3.
Patrones de Comportamiento: ................................................................ 11
Clasificación de los patrones de diseño según su ámbito .............................. 12
1.
De clase: .................................................................................................... 12
2.
De objeto: .................................................................................................. 12
Bibliografía........................................................................................................... 13
2
Introducción
Los patrones de programación son una herramienta fundamental para los
desarrolladores de software, ya que ofrecen soluciones probadas y efectivas a
problemas comunes que se presentan durante el proceso de desarrollo de software.
Estos patrones son como recetas que los programadores pueden seguir para
resolver problemas específicos de diseño de software. Al utilizar patrones de
programación, los desarrolladores pueden escribir código más limpio, mantenible y
reutilizable, lo que a su vez conduce a un desarrollo más eficiente y de mayor
calidad.
En este trabajo, exploraremos en profundidad la importancia de los patrones
de programación, ventajas, desventajas, el patrón MVC, clasificación de los
patrones de diseño según su propósito, así como su clasificación de los patrones
de diseño según su ámbito. Cada tipo de patrón juega un papel crucial en la creación
de software robusto y escalable.
3
Patrones de programación.
Los patrones de programación son soluciones generales a problemas
comunes que se presentan en el diseño de software. Estos patrones representan
las mejores prácticas adoptadas por la comunidad de desarrollo de software para
abordar problemas específicos de diseño. Al utilizar patrones, los desarrolladores
pueden evitar reescribir código y en su lugar, implementar soluciones probadas y
eficaces.
Los patrones se basan en el principio de la reutilización de código y la
modularidad. Al aplicar patrones, los desarrolladores pueden separar las
responsabilidades en diferentes partes de un sistema, lo que facilita la comprensión,
la modificación y la escalabilidad del software. Los patrones ayudan a los
desarrolladores a escribir código más limpio, más estructurado y más fácil de
mantener.
Importancia de los patrones de programación
La utilización de patrones demuestra el avance de un programador de
software, ya que utiliza soluciones probadas para problemas concretos que ya han
sido probados en el pasado. Los patrones evitan que se tenga que crear código
existente, ya que son escenarios identificados y su solución está documentada y
probada por lo que no es necesario comprobar su efectividad. Además de esto, los
patrones se basan en las mejores prácticas de programación.
Los patrones pretenden:
• Proporcionar un catálogo de soluciones probadas de diseño para
problemas comunes conocidos.
• Evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos
y solucionados anteriormente.
• Crear un lenguaje estándar entre los desarrolladores.
• Facilitar el aprendizaje a nuevas generaciones de programadores.
4
Asimismo, no pretenden:
• Imponer ciertas alternativas de diseño frente a otras.
• Imponer la solución definitiva a un problema de diseño.
• Eliminar la creatividad inherente al proceso de diseño.
Tomando en cuenta las ventajas que ofrecen los patrones, es importante
recordar que no siempre son aplicables, por lo que forzar un patrón para resolver
un problema incorrecto puede ser un gran error. Sin embargo, también existen los
casos en los que se puede realizar pequeñas variantes de los patrones para
solucionar de una mejor manera ciertos escenarios.
Ventajas de los patrones de programación
1. Reutilización de soluciones: Los patrones de programación proporcionan
soluciones estructuradas y estandarizadas para problemas comunes. Al
aplicar estos patrones, los desarrolladores pueden reutilizar soluciones
exitosas en diferentes proyectos, lo que ahorra tiempo y esfuerzo. Esto lleva
a un aumento en la eficiencia y productividad del equipo de desarrollo.
2. Mejora de la calidad del software: Los patrones de programación
promueven buenas prácticas de diseño y arquitectura de software. Al utilizar
estos patrones, se fomenta la modularidad, la escalabilidad y la flexibilidad,
lo que resulta en un código más limpio y fácil de entender. Esto reduce la
probabilidad de errores y facilita el mantenimiento del software a largo plazo.
3. Comunicación efectiva: Los patrones de programación proporcionan un
lenguaje común y una base de conocimientos compartida entre los
desarrolladores. Esto facilita la comunicación y colaboración dentro del
equipo de desarrollo, ya que todos tienen una comprensión común de los
problemas y soluciones utilizados en el diseño del software.
4. Incremento de la escalabilidad: Los patrones de programación permiten
que el software sea más escalable, es decir, capaz de manejar un mayor
volumen de datos o usuarios sin degradar su rendimiento. Estos patrones
5
proporcionan estructuras flexibles que se adaptan a diferentes demandas y
permiten
la
incorporación
de
nuevas
funcionalidades
sin
afectar
negativamente la arquitectura existente.
Desventajas de los patrones de programación
1. Complejidad adicional: Al aplicar patrones de programación, el código
puede volverse más complejo debido a la necesidad de seguir ciertas
convenciones y estructuras. Esto puede dificultar la comprensión y
mantenimiento del software, especialmente para desarrolladores menos
experimentados. Es importante equilibrar la necesidad de utilizar patrones
con la simplicidad y legibilidad del código.
2. Sobrediseñó: Existe el riesgo de caer en el sobrediseño al utilizar patrones
de diseño. Al intentar aplicar patrones en cada parte del software, incluso
cuando no son necesarios, se puede incurrir en una complejidad innecesaria
y un aumento en el tiempo de desarrollo. Es importante evaluar
cuidadosamente si un patrón es adecuado para el problema específico que
se está abordando.
3. Curva
de
aprendizaje: Al
ser
soluciones
más
estructuradas
y
estandarizadas, los patrones de programación requieren un tiempo de
aprendizaje para comprender su aplicación correcta. Los desarrolladores
deben familiarizarse con los diferentes patrones y saber cuándo y cómo
aplicarlos de manera efectiva. Esto implica una inversión inicial en
capacitación y puede ser un desafío para equipos sin experiencia previa en
el uso de patrones de programación.
Patrón MVC
MVC significa modelo (model), vista (view), controlador (controller). Esto es
lo que significan cada uno de esos componentes.
•
Modelo: El backend que contiene toda la lógica de datos
•
Vista: El frontend o interfaz gráfica de usuario (GUI)
6
•
Controlador: El cerebro de la aplicación que controla como se muestran los
datos.
Ejemplo una app donde haya que hacer clic y muestre el auto seleccionado:
1. Modelo (datos)
El trabajo del modelo es simplemente administrar los datos. Ya sea que los datos
provengan de una base de datos, una API o un objeto JSON, el modelo es
responsable de administrarlos.
7
En la aplicación, el objeto modelo contiene un arreglo de objetos car con toda la
información (datos) necesaria para la aplicación.
También gestiona el carro actual que se muestra con una variable que se
establece inicialmente en null.
2. Vista (IU)
El trabajo de la vista es decidir qué verá el usuario en su pantalla y cómo.
La aplicación tiene dos vistas: carListView y CarView.
Ambas vistas tienen dos funciones críticas que definen lo que cada vista
quiere inicializar y renderizar.
8
Estas funciones son donde la aplicación decide lo que el usuario verá y cómo.
3. Controlador (Cerebro)
La responsabilidad del controlador es extraer, modificar y proporcionar datos al
usuario.
A través de las funciones getter y setter, el controlador extrae datos del modelo
e inicializa las vistas.
Si hay alguna actualización desde las vistas, modifica los datos con una función
setter.
9
Clasificación de los patrones de diseño según su propósito
Los patrones de diseño se clasifican según su propósito en:
1. Patrones de Creación: abstraen la forma en que se crean los objetos, de forma
que permite tratar las clases a crear, de forma genérica apartando la decisión de
qué clases crear o como crearlas. Según a donde quede desplazada dicha
decisión se habla de Patrones de Clase (utiliza la herencia para determinar la
creación de las instancias, es decir en los constructores de las clases) o
Patrones de Objeto (es en métodos de los objetos creados donde se modifica la
clase). Los patrones de Creación proveen diferentes maneras para remover las
referencias explicitas a clases concretas del código donde deben ser utilizadas.
•
•
Patrones de Creación de Clase:
▪
Factoría Abstracta.
▪
Constructor.
Patrones de Creación de Objeto:
▪
Método Factoría.
▪
Prototipo.
▪
Singleton.
10
▪
Conjunto de Objetos.
2. Patrones Estructurales: tienen que ver con la forma en que las clases y los
objetos son agrupados para formar grandes estructuras. Los patrones
estructurales
de
clase
usan
la
herencia
para
formar
interfaces
o
implementaciones. Los patrones estructurales de objeto describen formas de
agrupar objetos para dar o crear nuevas funcionalidades.
•
Patrones Estructurales de Clase:
o Herencia Múltiple.
o Adaptador de Clases.
•
Patrones Estructurales de Objeto:
o Adaptador de Clase.
o Puente.
o Compuesto.
o Decorador.
o Fachada.
o Flyweigth.
o Proxy.
3. Patrones de Comportamiento: están relacionados con los algoritmos y con la
asignación de responsabilidades entre los objetos. Los patrones de
comportamiento no describen sólo patrones de clases y de objetos, sino que
describen los patrones de cómo éstos se comunican. Éstos patrones
caracterizan complicados flujos de control que son difíciles de seguir o imaginar
en tiempo de ejecución.
•
Los principales patrones de comportamiento son:
▪
Experto.
▪
Comando.
▪
Interprete.
▪
Iterador.
▪
Mediador.
▪
Memento.
11
▪
Observador.
▪
Estado.
▪
Estrategia.
▪
Plantilla.
▪
Visitante.
▪
Vista / Controlador.
Clasificación de los patrones de diseño según su ámbito
1. De clase: Basados en la herencia de clases.
2. De objeto: Basados en la utilización dinámica de objetos.
12
Bibliografía
•
Tecnoloworld (05-09-2024). https://tecnoloworld.net/programacion/patronesde-diseno-en-programacion-importancia-y-aplicaciones/
•
Oscar Javier Blancarte Iturralde (2016). Introducción a los patrones de
diseño un enfoque practico.
•
German Gutiérrez (10-05-2024). https://www.linkedin.com/pulse/beneficiosy-desventajas-de-los-patrones-dise%C3%B1o-german-gutierrez-jgrjc/
•
Rafael D Hernández (28-07-2021).
https://www.freecodecamp.org/espanol/news/el-modelo-de-arquitecturaview-controller-pattern/
•
Diego A. Asenjo G.
http://artemisa.unicauca.edu.co/~alerios/publicaciones/patrones.pdf
•
https://refactoring.guru/es/design-patterns/csharp
13
Descargar