STRATEGY | PATRONES de DISEÑO

Поделиться
HTML-код
  • Опубликовано: 30 июл 2024
  • ⭐ Kite es un asistente de código gratuito que se integra con prácticamente todos los editores y utiliza IA para el autocompletado. ¿Qué puede haber más pro que eso?
    ► www.kite.com/get-kite/?...
    En éste vídeo vamos a ver un patrón de comportamiento, el patrón STRATEGY! Lo veremos con ejemplos de videojuegos y otras cosas. Es uno de los patrones más flexibles que usa de forma extensiva el polimorfismo.
    Índice de la serie:
    • Las PIEZAS FUNDAMENTAL...
    EMAIL PARA COMPARTIR PROYECTOS A REVISAR EN DIRECTO! 💥
    bettatechyt@gmail.com
    LIBROS!
    Design Patterns 👉 amzn.to/39XuQlq
    Head First Design Patterns 👉 amzn.to/2uq6XUq
    Refactoring 👉 amzn.to/2SQnf2c
    Clean Architechture 👉 amzn.to/3bZVonJ
    Clean Code 👉amzn.to/32WVKq3
    Introduction to Algorithms 👉amzn.to/34SyVFP
    Cracking the Coding Interview 👉amzn.to/2QkdwC6
    CANAL DE SLACK AQUI! 👇🏻👇🏻👇🏻👇🏻
    bit.ly/33gaDDM
    ---MI EQUIPO
    RATÓN LOGITECH MX MASTER 2S: amzn.to/2QkdxGa
    CAMARA: amzn.to/34WytGi
    MICROFONO: amzn.to/32Q3fPt
    DISCO DURO EXTERNO SEAGATE: amzn.to/31ElQh9
    ONE PLUS 6: amzn.to/32U4Wvk
  • НаукаНаука

Комментарии • 186

  • @slynkbass
    @slynkbass Год назад +16

    Hola Martín!
    Estaría bien retomar este curso de Patrones de diseño y terminar de añadir algunos patrones como son: Builder, Prototype, Mediator, Facade, etc...
    Un saludo, y gracias! ^^

  • @kraller7
    @kraller7 4 года назад +52

    se complementa genial con el abstract factory para instanciar las diferentes estrategias

    • @BettaTech
      @BettaTech  4 года назад +9

      Exactamente!!! :D

    • @TheTheokatz
      @TheTheokatz 2 года назад

      @@BettaTech No puedo ver bien como se implementarían el patrón Strategy y el Abstract Factory juntos, si estuviéramos buscando como "combinar" efectos de ataques se me viene a la cabeza el patrón decorator. ¿Alguno podría explicar como funcionarían Strategy y Abstract Factory juntos?

    • @BettaTech
      @BettaTech  2 года назад +1

      @@TheTheokatz con la factoria abstracta montas las clases necesarias para poder crear las estrategias. Es decir, creas las propias estrategias usando una factory en vez de instanciarlas directamente

    • @TheTheokatz
      @TheTheokatz 2 года назад

      @@BettaTech Gracias por responder tan rápido.
      ¿Creando las estrategias con una Factory como nos ayudaría a combinar ataques? Cómo por ejemplo un ataque que baje la velocidad + un ataque que envenene. No entiendo esa parte.
      ¿O no se supone que la combinación de patrones nos ayude a hacer eso? ¿Sino que solo es para tener un mejor y más limpio código?
      Un saludo!

    • @BettaTech
      @BettaTech  2 года назад +6

      @@TheTheokatz Con la factory creas estrategias. Puedes también combinar las estrategias con el patron decorator para hacer lo que dices! Las lógica de crear ataques decorados podria vivir en el factory y ya tienes ahi una triada espectacular 😄

  • @jesus_r4346
    @jesus_r4346 4 года назад +1

    Muchas gracias por el video. Espero que sigas subiendo el resto de patrones.

  • @jesusvargas3063
    @jesusvargas3063 4 года назад +2

    Genial! Espero el siguiente vídeo con ansías.

  • @trhashthings8045
    @trhashthings8045 4 года назад

    Una felicitacion por que son de los mejores videos donde explican patrones de diseño en español, una recomendacion, hacer la implementacion en codigo y correrla para que se entienda la funcionalidad del patron de forma visual

  • @diegotoro1998
    @diegotoro1998 4 года назад +1

    Muchas gracias por subir este tipo de contenido. No he encontrado ningún vídeo en español que tenga tanta calidad y con una explicación tan concisa y clara como esta. Espero que el canal siga creciendo.

  • @noface960
    @noface960 4 года назад +4

    Excelente explicación, siempre es bueno dar ejemplos reales de aplicación

  • @devy1451
    @devy1451 2 года назад +2

    Muchas gracias, se agradece inmensamente, por favor, más explicaciones y más ejemplos para pratones de diseño para videojuegos sería estupendo!

  • @barbieroalex
    @barbieroalex 4 года назад +1

    Gracias!, tremendo!, espero los próximos vídeos 🧠

  • @klapx8499
    @klapx8499 4 года назад +5

    Estaría muy bueno que hagas un video sobre la combinación de ambos patrones, strategy y factory, utilizados en un ejemplo sencillo.

  • @uliseseseses
    @uliseseseses 4 года назад

    Me ayudó en entender el patrón para mí estudió, muchas gracias y sigue subiendo más

  • @johnnyblack612
    @johnnyblack612 4 года назад +11

    Joder tío eres un crack, no logro comprender como entiendo algo tan complicado tan fácilmente, deberías dar cursos joder, pagaría lo que sea porque seas mi maestro

  • @nicolascometta283
    @nicolascometta283 4 года назад +7

    Un patron que puede utilizarse es el State, y segun el estado en que se encuentre el pokemos cambie su comportamiento (State es un patron de comportamiento) ya sea que este noqueado, o durmiendo, etc. o tal vez enfurecido y esto haga que sus ataques sean mas potentes, por ejemplo. Saludos desde Argentina!

  • @eleserrano
    @eleserrano 4 года назад

    No se como puedes explicar todo tan bien, en serio me encantan tus videos. Podrias hacer un peqeuño videojuego implementando este patron estaría muy guay

  • @JonathanAndres
    @JonathanAndres 4 года назад +15

    Muchas gracias por este contenido, personalmente me encanta. Podrías alguna vez hablar sobre inyección de dependencias y un contenedor de inversión de control?.
    Un saludo!

    • @davidmata3104
      @davidmata3104 4 года назад

      A mi también me gustaria ver como se implenta un IOC

  • @MsGuitarrista1999
    @MsGuitarrista1999 3 года назад +1

    crack de cracks. Espero con ansias los siguientes patrones!

  • @kevte4603
    @kevte4603 4 года назад +119

    Despues de enseñar todos los patrones de diseño, te animarias a hacer un juego utilizandolos?

  • @damianpinones5818
    @damianpinones5818 4 года назад

    Muy buena explicación! Muchas gracias! Saludos desde Argentina!

  • @jonathanadamson5209
    @jonathanadamson5209 4 года назад

    Excelente contenido, muy buen y clara tu explicación, muchas gracias!

  • @luis96xd
    @luis96xd 4 года назад +2

    Excelente video, estuvo muy bien explicado :D

  • @josoza248
    @josoza248 4 года назад +53

    y no vale el uso de Switch, que nos conocemos :), jaja justo asi.

    • @danieluxury
      @danieluxury 2 года назад

      quisiera entender cual es el problema con el uso del switch .. me dedico a la programación en sistemas embebidos, y lo usamos muy frecuentemente.. pero ya he escuchado varias veces cosas negativas del uso del switch, sin entender cual es el problema.

  • @gabokings260388
    @gabokings260388 4 года назад

    Que genial video, tengo varios anios programando pero es muy util, respondiendo a tu pregunta pienso que seria Decorator

  • @666zulett
    @666zulett 4 года назад

    me encanto este patron va tiempo que me quiero leer el desing patterns pero me daba una pereza terrible uno por que esta en ingles y otro por que son como 300 paginas jejeje pero tu explicacion creo que me basta al menos hasta que encuentre fuerzas para leerme el libro, un gran video sigue asi

  • @Cronofear
    @Cronofear Год назад

    Gracias por este video. Parece que este patrón es justo lo que necesitaba para diseñar mi sistema de crafteo de magia similar a Mages of Mystralia.

  • @ItsGonnaRaiN143
    @ItsGonnaRaiN143 3 года назад

    Eres muy bueno explicando, seria genial que hagas un video acerca de CQRS + Event sourcing que es tendencia ultimamente.. un saludo!

  • @stephentellez5718
    @stephentellez5718 2 года назад

    muy interesante, creo que necesitare ver otra ves el video para interiorisar los comceptos

  • @sergioandrescelemin3429
    @sergioandrescelemin3429 4 года назад +3

    Sería genial que hablaras del patrón Command, me voló la cabeza cuando lo escuché por primera vez!

  • @esaraviam
    @esaraviam 3 года назад +1

    Gracias por compartir tu conocimiento 👍

  • @Ditmaros1
    @Ditmaros1 4 года назад

    hermoso video muy bien explicado

  • @jorgesanclemente4067
    @jorgesanclemente4067 2 года назад +8

    Estoy estudiando la asignatura de Ingeniería del Software, en tercero de Ingeniería Informática y vienen genial estos videos. Gran trabajo crack!

    • @BettaTech
      @BettaTech  2 года назад +2

      Mil gracias! Y mucha suerte 😃

  • @sirsherguioth4573
    @sirsherguioth4573 4 года назад +2

    Muchas gracias por tu vídeo, la verdad es que son muy buenos. No sé si soy el único, pero el patrón strategy me recuerda mucho a la inyección de dependencias.

    • @BettaTech
      @BettaTech  4 года назад +1

      Se utiliza de hecho la inyección de dependencias, ya sea por constructor o en la misma funcion :D

  • @mariobesednjak4529
    @mariobesednjak4529 4 года назад

    Excelente Bideo Betta, para cuando mas, justo ando con eso en la facu y me ha ayudadi un monton, saludos!

  • @nicolaseckell9691
    @nicolaseckell9691 4 года назад +4

    Este patrón es como hacer poliformismo básico. Estaría muy bueno combinarlo con el patrón abstract Factory

  • @wuilliam321
    @wuilliam321 4 года назад +1

    Excelente!!!!

  • @cristianfs95
    @cristianfs95 3 года назад

    la concha de la lora pelado, me vuelvo loco. que buen canal, dios mio. te conocí por resolver el ejercicio de entrevista laboral y gracias a ese me doy cuenta que subís contenido espectacular. Te ganaste un fiel seguidor viejo, abrazo fuerte desde argentina! 🇦🇷

  • @RoninFlame
    @RoninFlame 3 года назад

    Lo estaba aplicando sin saberlo pero gracias a esto lo implementare mejor, gracias

  • @soyviejodemedeme
    @soyviejodemedeme 4 года назад +2

    Muy interesante, me acabo de enterar que utilizo el patrón Strategy muchas veces. Realmente si aplicas el segundo principio solid y el quinto, estarías aplicando este patrón, no?

  • @angienavia7730
    @angienavia7730 4 года назад

    Pucha man, eres muy bueno explicando, mil gracias! .-.

  • @sirixb
    @sirixb 3 года назад

    Excelente video gracias, ahora Pokémon me recordará fácilmente este patrón

  • @xavivillarongagarcia8255
    @xavivillarongagarcia8255 4 года назад

    Brillante!!

  • @ivanmoreno6823
    @ivanmoreno6823 3 года назад +6

    Creo que este patrón combinaría muy bien con el patrón decorator.

    • @FedericoAlemany
      @FedericoAlemany 2 года назад +1

      Yo creo que no, porque el patrón Decorator implica la aplicación simultanea de muchas clases (anidadas), mientras que en este patrón se selecciona (de forma excluyente) una u otra estrategia (pero no ambas al mismo tiempo).
      Saludos!

    • @ivanmoreno6823
      @ivanmoreno6823 2 года назад +1

      @@FedericoAlemany Hola! Hace 8 meses que escribí ese comentario así que me has pillado por sorpresa jajaja. Yo me refería a que se podría inyectar una estrategia que fuera un decorator, a la clase a la cual se le inyecta no le importa que decorator es porque todos comparten la misma interfaz. Quizás no es la mejor forma de usarlo, como el patrón decorator es estructural y el estrategia de comportamiento no me había parado a compararlos, pero tu reflexión me ha parecido interesante.
      Saludos!

  • @aurox1000
    @aurox1000 4 года назад +1

    Excelente video

  • @josejimenez-wd5rw
    @josejimenez-wd5rw 4 года назад

    excelente !

  • @VictorMM
    @VictorMM 4 года назад +1

    Gran vídeo, hay que fomentar este tipo de contenido. Pero creo que el ejemplo del Logger no es un Patrón Strategy es un ejemplo de Inversión de dependencias.

  • @raulbolanos4920
    @raulbolanos4920 3 года назад

    Excelente explicación.

  • @patousarg
    @patousarg 4 года назад +2

    El patrón que te va a dejar combinar diferentes tipos de estrategias es el composite!! Se acopla muy bien al strategy 😉
    Saludos desde Argentina!

    • @BettaTech
      @BettaTech  4 года назад +1

      Exacto! Composite es MUY interesante

    • @patousarg
      @patousarg 4 года назад +1

      @@BettaTech muy bueno el video, olvidé felicitarte por tu simplificidad a la hora de explicar!

  • @joshdev15
    @joshdev15 4 года назад

    Tus videos son geniales, pero tengo una pregunta, por lo que he visto hasta ahora, todos los patrones de los que has hablado llevan consigo cosas muy especificas de la POO (Encapsulamiento, Polimorfismo, Herencia), sin embargo habra algun patron que ayude en un lenguaje que no tiene todas la caracteristicas de la POO como Golang, apenas lo aprendo pero me gustaria aplicar una buena estructura y codigo limpio desde el inicio, gracias...

  • @ivonneburgos7940
    @ivonneburgos7940 4 года назад

    Buen video!

  • @johnromero6299
    @johnromero6299 3 года назад

    Excelente! saludos desde colombia

  • @xaviergomezdelatorre6718
    @xaviergomezdelatorre6718 4 года назад

    Tengo una pregunta aprovechando que eres ingeniero y has hecho bastante programación.
    ¿Para software de proposito general, ves que tenga sentido estudiar lenguaje de bajo nivel?
    El año que viene en la universidad tengo Administración de Sistemas Operativos y no le veo el sentido para lo que quiero aprender yo.
    Hay otra rama a la que me puedo cambiar, y que no hay lenguaje de bajo nivel, ni profundizan en el protocolo EIGRP (tampoco sé para que me puede servir eso a mi).
    ¿Qué me recomendarías?

  • @emmanuelquesada7062
    @emmanuelquesada7062 4 года назад +1

    ojala todos los profesores explicaran así buenísimo con juegos es mucho mejor y mas entendible

  • @franciscoantilef2271
    @franciscoantilef2271 4 года назад

    Esto es inversion de dependencias para un comportamiento ? , genial el video

  • @mauricioluisvega8342
    @mauricioluisvega8342 4 года назад

    ME ENCANTO. Ahora no hay excusas, encierro + codigo...Cuidate mucho.

  • @simonsaletti
    @simonsaletti 4 года назад

    Excelente

  • @ColdRooster
    @ColdRooster 4 года назад

    Te ganaste un suscriptor.

  • @bawual9223
    @bawual9223 4 года назад

    Hola,una consulta que utilizas para representar graficamente el codigo que nos muestras?,o es algun editor ? sldos

  • @4strodev
    @4strodev Год назад

    Viendo este video me ha hecho pensar que los route guards de angular parecen un ejemplo del patrón strategy o al menos eso me ha parecido a priori.

  • @hugomontero8923
    @hugomontero8923 4 года назад

    Podríamos utilizar el patrón command para ejecutar múltiples funciones de ataque?

  • @delciopolanco
    @delciopolanco 3 года назад

    Hola @BettaTech quisiera entender como entonces haces la diferencia de pasar la propiedad path en el constructor luego de hacer la injeccion de dependencia de la interfaz Logger. Esa parte no me queda claro.

  • @diegoalejandrogutierrezsua8849
    @diegoalejandrogutierrezsua8849 4 года назад +3

    Muy interesante, seria genial que hablaras de la arquitectura y patrones que usan los frameworks más famoso, en el caso de node express en el caso de php laravel y symfony, esto con el fin de entender de forma más profunda como funcian estos frameworks y de esta manera que nosotros no tengamos que adaptar el sistema al framework más bien que el framework se adapete al sistema

  • @argalothrengade5591
    @argalothrengade5591 4 года назад +4

    Este anime me encanta.

  • @erosjoseadarragajimenez
    @erosjoseadarragajimenez Год назад

    Muy buen video, para ti cuales serian los patrones de diseño mas importante que tiene que saber un dev junior java y angular?

    • @BettaTech
      @BettaTech  Год назад

      Factory puede ser uno muy útil! Para angular, los Observer son el dia a dia

  • @ivanpallares9039
    @ivanpallares9039 3 года назад

    Cuando la estrategia se decide en tiempo de ejecucion seguimos considerandolo patron strategy? El ejemplo seria un convertidor de formatos de texto al cual le pasamos un parametro (json, yml, csv...) y el ya decide dinamicamente que estrategia ejecutar (normalmente usando un metodo "supports(...)" de las estrategias concretas)

    • @rainbow-jw3og
      @rainbow-jw3og 2 года назад

      al final que solucion usaste? tengo la misma duda

  • @landyy6988
    @landyy6988 4 года назад

    Hace un video hablando de como estudiar programacion sin ir a una universidad pero quiero aprender un lenguaje a fondo de forma autodidacta

  • @Zeus31222
    @Zeus31222 3 года назад

    Que tal seria una combinación del strategy con el builder?

  • @davidalbertoortizmartinez6151
    @davidalbertoortizmartinez6151 2 года назад

    Con que otros patrones se podría combinar este aparte del factorymethod factory?

  • @jhonvalencia6902
    @jhonvalencia6902 4 года назад

    Tengo una duda, a mi parecer detrás de este siempre hay un Factory o me equivoco? Saludos desde Colombia excelente contenido .

    • @BettaTech
      @BettaTech  4 года назад +1

      Se puede, y de hecho es muy utilizado! :D

  • @yohcg
    @yohcg Год назад

    como cuando no te das cuenta que ya estabas implementando este patron...... de alguna forma se parece a factory, no?
    Creo que es mi problema con los patrones de diseño. porque cuando preguntan por definiciones en entrevistas, algunos patrones son tan similares que me cuesta explicarlos. Seguire viendo esta serie de videos. Saludos.

  • @davidmata3104
    @davidmata3104 3 года назад +1

    Que diferencia existe entre el Strategy pattern y el Bridge pattern?
    Pd. Muy buenos tutoriales, sigue sacando videos de patrones de diseño

    • @pfarinav
      @pfarinav Год назад

      Un año tarde, pero por si alguien más lo lee:
      El patrón strategy te permite cambiar el "que" para caso que necesites, como se ve en el video.
      Bridge por otra parte tiene como objetivo separar entidades relacionados en 2, por ejemplo y siguiendo con pokemon. Si tienes una clase "pokemon" y les quieres dar tipos, podrías terminar con una explosión de clases al generar las combinaciones, entonces creamos un clase "type" que es independiente de la clase "pokemon" pero que está última puede implementarla, así "type" puede crecer, modificarse o agregar tipos, independiente del pokemon. En este caso no estamos intentando implementar el "que" hace cada tipo, como si ocurre en el ejemplo de los ataques, donde se usa el strategy

  • @SuperSpeed52
    @SuperSpeed52 4 года назад

    Y al final de este video amigos oficialmente son capaces de crear un intérprete o un entorno de ejecución de un lenguaje de programación

  • @sgssergio
    @sgssergio 10 месяцев назад

    Colo se hace el cambio de estrategia en tiempo ee ejecucion sin usar ifs?

  • @davidleonardobernal61
    @davidleonardobernal61 2 года назад

    Hola, viendo lo que explicas en otro video se parece mucho al patrón factory method. Cuál es la diferencia entre estos dos? O como puedo saber cuando usar uno u otro?

    • @BettaTech
      @BettaTech  2 года назад

      El patrón Factory lo que hace es CREAR. Es decir, los dos usan polimorfismo, pero uno busca devolver objetos (factory) y otro gestionar comportamiento (strategy).

  • @emmanuelvalverderamos
    @emmanuelvalverderamos 4 года назад

    Que libro de patrones de diseño recomiendas

  • @manuvalbu
    @manuvalbu Год назад

    Con el patrón puente no se podría combinar para reducir el número de combinaciones de ataques con efectos?

    • @BettaTech
      @BettaTech  Год назад

      Si! Seria una opcion 😊

  • @santo998
    @santo998 4 года назад

    ¿No se complementa con el patrón Decorator? El ejemplo de los distintos ataques de los Pokemon me parece que también se puede usar en conjunto con el patrón Decorator. ¿Esto es así? ¿Un ejemplo para bajarlo a tierra? Es que no lo tengo muy claro...

  • @Mouta77
    @Mouta77 2 года назад

    Pero no tengo claro como evitas utilizar el "IF", en algún momento tienes que indicar la estrategia a utilizar en cada caso, y esto, se haría con un IF, no?

  • @alexvarela5339
    @alexvarela5339 4 года назад

    Patron command seria bueno que lo explicaras

  • @Djstudiosmexico
    @Djstudiosmexico 4 года назад +1

    Genial no das cursos de programación implementado todo esto tipo de patrones en udemy

  • @m4tywing
    @m4tywing 4 года назад +1

    Los ejemplos de interfaces stán en JS?

  • @angelicareyes693
    @angelicareyes693 4 года назад +2

    Hola Betta, estoy realizando un programa "tipo paint" solo con figuras primitivas. Que diseño de patrón crees que se ajusta?

    • @sebastianvargasarenas124
      @sebastianvargasarenas124 4 года назад +1

      Si vas hacer modificaciones de las figuras y quieres evitar tocar la estructura original de ellas, podrías usar el patrón: "Prototype", así puedes por ejemplo tener varios rectángulos con diferentes colores y tamaño en el tablero sin modificar el original.

    • @angelicareyes693
      @angelicareyes693 4 года назад +1

      @@sebastianvargasarenas124 Gracias! estaba pensando en otro patrón pero éste se ajusta perfectamente.

  • @GuillermoAlfonsoMorales
    @GuillermoAlfonsoMorales 4 года назад

    Cásate conmigo. Explicas muy bien.

  • @ElSharaawe
    @ElSharaawe 2 года назад

    Es el principio de inversión de dependencias en toda regla!

  • @Richard-xh5iw
    @Richard-xh5iw 4 года назад

    como puedo conectarme a otra PC con la internet. Usando direccione IP pero que sea capas de funcionar en cualquier tipo de sistema operativo Quiero crear una programita de consola simple que pueda enviarse mensaje solo texto a otra pc conectada a la Internet, sin importar Que sistema operativo use. E intentado hacer un programa con socket con windows winsock pero no funciona de ninguna forma me sale demaciados errores tambien probe con TELNET pero tampoco me dejava ver la ip de mi otra pc

  • @EdgarPachelo
    @EdgarPachelo 2 года назад

    Se puede integrar Decorator, Singlenton, factory y mas

  • @terse4539
    @terse4539 4 месяца назад

    Y para saber que estrategia usar... otro montañas de if?

  • @DanteAlferezCondori
    @DanteAlferezCondori 3 года назад

    Y que pasaría si cada estrategia necesita de datos de entrada diferentes?

  • @ezecel9
    @ezecel9 3 года назад

    Puede que sea igual al patrón Factory?

  • @vktop2
    @vktop2 Год назад

    Buen video! Cual es la diferencia entre strategy y factory?

    • @BettaTech
      @BettaTech  Год назад

      Factory es un patrón creador: te devuelve objetos que luego puedes usar. Strategy es un patrón de comportamiento, ejecuta lógica (siendo puristas, esta lógica no crea, porque la intencionalidad de ambos patrones es distinta).
      Si podrias tener, por ejemplo, una factory que te devuelve diferentes tipos de estrategias que luego usas

  • @danielclow
    @danielclow 9 месяцев назад

    5:30 En ese ejemplo que va a ejecutar el app? el ConsoleLogger o el FileLogger?

    • @erikomarmontescastro100
      @erikomarmontescastro100 4 месяца назад

      la app ejecutara la clase concreta (que hereda de Logger) que el programador le pase en el metodo Run(), el metodo Run() recibe cualquier tipo de instancia que herede de la clase base Logger, entonces, el programadore puede pasarle la clase concreta que él desee

  • @davidquezada2116
    @davidquezada2116 3 года назад

    4:14 Creo que se podría hacer con el decorator pattern.

  • @ericktucto
    @ericktucto 4 года назад

    Cuando empezaste a hablar sobre el Logger, me sonaba mucho al patron Facade, ¿Que diferencia hay entre los 2?
    --- Updated
    No son iguales, ya investigué

  • @Rigal01
    @Rigal01 4 года назад

    Si utilizas una estrategia para registrar en un Log estás violando el principio de responsabilidad única y corres el peligro de que los métodos de tu clase queden guarreados y con ruido del log en medio de su logica propia.
    Para un Log sería mejor utilizar un patrón decorator para que mediante la inyección de dependencias puedas aislar completamente el log del resto de la logica de la aplicación. Así es como lo comenta Mark Seaman en "Dependency Injection in .NET" , una lectura bastante recomendable.
    La mejor opción sería combinar el patrón decorator con strategy de forma que si tienes tu clase principal con el método makeSomething. Un Interfaz IPokemonBattleManager con la interfaz, una clase PokemonBattleManager y otra clase PokemonBattleManagerLog que implimentan dicho interfaz.
    En el constructor de PokemonBattleManagerLog pasarias como parametro IPokemonBattleManager y otro LogStrategy, de forma que en cada método que interese loguear, ejecutarias un método de la clase LogStrategy y el método de la clase IPokemonBattleManager.
    Si todas las clases que implementan IPokemonBattleManager tienen en su contructor un parametro de la misma interfaz se pueden ir apliando para ampliar funcionalidad. Por ejemplo, gestión de errores, control de accesos, etc.

  • @esnoz
    @esnoz Год назад

    La estructura me recuerda al patrón Observer.

  • @cmaxhm
    @cmaxhm 4 года назад

    Hay algo que no entiendo. En el ejemplo del Logger, cómo sabe el contexto cual implementación se usará?

    • @BettaTech
      @BettaTech  4 года назад +1

      Se la inyectan como dependencia. La gracia es que el contexto no lo sabe (ni deberia saberlo)

    • @joalbertgonzalez8085
      @joalbertgonzalez8085 4 года назад

      @@BettaTech justo estaba buscando esta respuesta, tenia la misma duda que Carlos, entonces depende de lo que importes.

    •  4 года назад +1

      @@BettaTech gracias por la respuesta pero tampoco entiendo eso, ya que en el 5:31 la clase APP (contexto) esta llamando a la clase logger "run(logger: Logger): void" o es que es ahí donde debería ser algo como "run(logger: FileLogger): void" ??

  • @mugatu2017
    @mugatu2017 3 года назад

    Lo mas confuso por llamarlo de alguna manera es la convencion usada para nombrar a las clases e interfaces actores del patron, por lo demas es bastante facil

  • @pfarinav
    @pfarinav Год назад

    Strategy + Decorator

  • @thenaru26
    @thenaru26 4 года назад +3

    Me puedes decir cuál es el mejor idioma de programación y el más fácil de aprender es que soy un principiante

    • @mclaren9542
      @mclaren9542 4 года назад +1

      C++

    • @staljumper
      @staljumper 4 года назад +1

      Eso que dices no tiene mucho sentido a mi modo de ver, pero te recomiendo Java. Un saludo.

    • @GustavoGarcia-ik2uh
      @GustavoGarcia-ik2uh 4 года назад +1

      PYTHON

    • @itmarck
      @itmarck 4 года назад +1

      Depende mucho a qué te quieras dedicar. Por ejemplo si vas por web no es tan necesario que te líes con lenguajes como C++ o Java. Pero si empiezas con esos vas a tener una gran ventaja por conceptos y una visión más amplia. Por otro lado JavaScript o Python como primer lenguaje está correcto.

    • @davidnavarro265
      @davidnavarro265 4 года назад +1

      Cómo todo en desarrollo, depende. Depende de lo que quieras hacer. Si quieres, escríbeme, y te hablo desde mi experiencia. No estudié programación en la universidad y hace 3 años hice un cambio de carrera y ahora trabajo como desarrollador web

  • @gilmarlam7344
    @gilmarlam7344 4 года назад

    Cuál es la diferencia con el patrón Factory?

    • @BettaTech
      @BettaTech  4 года назад +2

      Factory crea instancias. Strategy implementa "logica"

  • @leonardodavinci8875
    @leonardodavinci8875 4 года назад

    Pienso que para poder combinar ataques podemos apoyarnos en el patrón Composite debido a que esto ya nos ayudaría a crear ataque mucho más complejos. Respuesta a la pregunta del minuto 4:30. :)

    • @leonardodavinci8875
      @leonardodavinci8875 4 года назад

      Aunque también si una estrategia es díficil de adaptar a la herencia solo debemos usar el patrón de Diseño Adapter.

  • @jsonft5417
    @jsonft5417 4 года назад

    Patrón decorator?