Тёмный
No video :(

Strategy | Organiza tus algoritmos con este patrón de diseño 

Manuel Zapata
Подписаться 45 тыс.
Просмотров 4,8 тыс.
50% 1

👉 Conoce más de mi CURSO PRÁCTICO DE PATRONES DE DISEÑO: manuelzapata.c...
En este video te explico los aspectos básicos, analogías y ejemplo de código del Patrón de Diseño Strategy o Estrategia.
MIS CURSOS
📐 Arquitectura de Software: manuelzapata.c...
🔌 Patrones de Diseño: manuelzapata.c...
📦 Programación Profesional con Objetos (Gratis): manuelzapata.c...
🌲 Principios de Diseño SOLID (Gratis): manuelzapata.c...
🌎 Mi sitio web: manuelzapata.co
🎦 Suscríbete al canal: manuelzapata.c...
📩 Mi lista de correo: manuelzapata.c...
Secciones del video
00:00 - Introducción
00:06 - Analogía de Strategy en la vida real
02:06 - Conceptos básicos de Strategy
03:28 - Estructura de Strategy
05:04 - Ejemplo de una estructura de Strategy
07:38 - Cuándo usar Strategy
09:23 - Ventajas y Desventajas de Strategy
15:23 - Ejemplo de Strategy en Java
27:58 - Cierre

Опубликовано:

 

15 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 19   
@ManuelZapata
@ManuelZapata Год назад
👉 Conoce más del CURSO PRÁCTICO DE PATRONES DE DISEÑO: manuelzapata.co/curso-pdd
@oh-vito
@oh-vito Год назад
Excelente ejemplo para entender el patrón strategy.
@ManuelZapata
@ManuelZapata Год назад
Gracias!
@ElBarbaroDev
@ElBarbaroDev Год назад
Excelente aporte. Gracias.
@ManuelZapata
@ManuelZapata Год назад
Gracias Carlos!
@megadeath15
@megadeath15 Год назад
Muy buenos videos
@ManuelZapata
@ManuelZapata Год назад
Gracias!
@elberthagreda4467
@elberthagreda4467 Год назад
Buen video, recomendarias el uso de maquinas de estado para la implementación de este patron? Saludos!!
@ManuelZapata
@ManuelZapata Год назад
Si necesito estados, probablemente me iría por un patrón de State, y no Strategy.
@luisespinoza9093
@luisespinoza9093 3 месяца назад
Tengo una duda y en un escenario donde dependiendo ciertos factores tienes que usar el algoritmo de encriptación AES y CEASAR, se usaría de todas maneras una condicional en la clase StrategyClient? al final se caeria en lo mismo que se trata de evitar no?
@luisvalero6665
@luisvalero6665 3 месяца назад
tengo la misma duda
@sparrowfunction8915
@sparrowfunction8915 Год назад
Buenas Manuel, antes de nada agradecerte toda la información que compartes en tú canal. Quería preguntarte, si podría realizarse esa inicialización de propiedades en el constructor en vez del método adicional init. ¿Lo has puesto en ese método para "forzar" la implementación en el caso que sea necesaria?
@manuelzapatacastillo561
@manuelzapatacastillo561 Год назад
Buenas tardes Hijo, interesante contenido
@user-nl4tn3zq8i
@user-nl4tn3zq8i Год назад
Al momento de crear las estrategias y los contextos; Se puede usar el patron Factory?
@arosorio
@arosorio Год назад
Hola Manuel, tengo un caso en una empresa de logistica y si bien sé que esto no es un consultaria me gustaría tener tu punto de vista a problematicas reales de negocio. Esta empresa tiene n clientes y cada cliente usualmente envia sus ordenes de entrega en archivos (txt, xlsx o XML), en esencia cada cliente envia mas o menos la información requerida para crear una orden estandar, sin embargo como ya supondras, por cada cliente cambia el formato del archivo, la estructura de los datos y lo mas importante los codigos usados, por ejemplo un cliente puede enviar nombres de ciudades y otro enviar sus propios codigos de ciudades en cada caso los debo convertir a la codificación usada por la empresa logistica. Deseo implementar el uso del patron estrategia, ya he implementado las estrategias concretas e incluso cada una de ellas puede usar otras estrategias por ejemplo para leer el contenido de un archivo y devolverlo en una estructura tabular (para archivos txt o xlsx) o un Documento (XML). Uso SpringBoot y java 8+. Lo que siempre he querido mejorar ha sido: 1) Hacer uso de lo que has explicado del Contexto, En mi caso tengo un servicio que periodicamente recorre una estructura de directorios, cada directorio me dice a que cliente pertenece el archivo y de acuerdo con eso pues llamo un metodo de la estrategia concreta esto es un swicht(codigoCliente) .... case CLIENTE_TUBOS: servicioClienteTubo.procesar(rutaArchivo)... 2) Esto es un programa que lleva años funcionando pero me veo tentado a explorar el uso de EIP (www.enterpriseintegrationpatterns.com/), me han recomendado que pase todo eso a unas ETL como SQL Server Integration Services que aunque se usarlo, lo cierto es que con Java puedo reutilizar mucho codigo y me es mas facil gestionar errores y reiniciar las tareas desde cierto punto. 3) Tambien me ha tentado la idea de poder ir generando jars con ls implementaciones de las estrategias para cada cliente, por la aplicación de administración configurar a cada cliente la implementacion concreta que debe usar (Como cuando en herramientas como DBeaver o similares le indicamos la libreria que usaremos para la conexón a ls base de datos). Sucede que cada cliente puede tener implementaciones concrertas no solo para el procesamiento de diferntes tipos de ordenes (entradas de mercancia a bodega, despachos, traslados, destruccion de mercancia vencida,...) pero tambien tienen implementaciones diferentes para liquidar los servicios de almacenamiento o de transportes (entregas y recogidas), la idea es que la entrada o salida de un cliente requiera la menor modificacion del programa 5) En mi caso uso una BD SQL y un reto que tengo es como cumplo los requerimeintos especiales de información de cada cliente, esto es algunos clientes pueden requerir datos muy particulares de sus entregas por ejemplo hay un cliente que nos pidio que cada producto en una entrega viniese con una relación de unos codigos documentos sanitarios que da el gobierno o que cada electrodomestico venga con un serial o un dato de su importación o un dato tecnico por ejemplo un numero de 1 a 5 que sea la calidad de esa instancia de producto. Estos son datos que solo usará una estrategia concreta pero si lo meto en las tablas estandares de alguna manera contamino mi modelo estandar con cosas particulares de cada cliente, si creo una tabla tipo nombreatributo-valor asociada a las entidades que tengan este requerimiento me funciona muy bien pero no me gusta dos cosas a) el valor lo almaceno como texto y me toca controlar que alli se meta un valor del tipo valido y b) para el tema de algunos reportes en linea que me piden, me toca hacer una operacion PIVOT de estos atributos, lo cual ademas de crearme una dependecia con el motor de BD a veces esto puede generarme problema de desempeños... la opción NoSQL entiendo sería ideal en este caso... pero la empresa no se quiere meter con este tipo de base de datos. Tengo mas preguntas... pero no quiero pasar la raya entre plantear un tema interesante para aprender y el descaro.
@soran2290
@soran2290 Год назад
Es como el patrón repository?
@ManuelZapata
@ManuelZapata Год назад
Realmente no. Tienen una estructura de clases similar, pero la intención de cada patrón, así como los métodos que se definen en cada uno, son muy diferentes.
@wilfredodice7972
@wilfredodice7972 Год назад
Manuel saludos excelente video. Una duda ¿realmente es necesario tener un constructor en la clase StrategyContext para recibir la clase concreta? Si queremos asegurarnos de que se nos llame correctamente, bastaría con agregar un assert en el método setStrategy. Ademas si lo hacemos a través del constructor, estaríamos estableciendo una relación de composición permanente, lo cual no creo que sea deseado. En cambio, al utilizar el método setStrategy, tendríamos una relación de asociación de uso, que sería lo ideal ya que es dinámica y momentánea. ¿Estoy equivocado?
@ManuelZapata
@ManuelZapata Год назад
Aquí es donde viene el poder de ajustar el patrón a tus necesidades. Si consideras que es mejor pasar la dependencia con un método set, perfecto!
Далее
NOOOO 😂😂😂
00:14
Просмотров 14 млн
Observer | Notificando eventos en nuestras aplicaciones
26:25
#JOOQ UNA ALTERNATIVA TYPESAFE A JDBC
1:31:52
Roadmap para ser líder técnico
22:37
Просмотров 5 тыс.
9 consejos para que MEJORES TU LÓGICA DE NEGOCIO
15:05
Patrones de diseño: Factory Method
38:14
Просмотров 2,5 тыс.
NOOOO 😂😂😂
00:14
Просмотров 14 млн