Eres un gran maestro MitoCode, no se porque no gobiernas el mundo, jajaja, un poco de humor, de verdad muchas gracias por compartir tus conocimientos y tu buena energía.
Hola MitoCode. La función agregarBlindaje solamente está haciendo un print, sin embargo en un caso todavía más realista una decoración, según entiendo, implicaría añadirle un atributo a un objeto. Si supongamos fuera un boleto que en caso de ser VIP que representara el hecho de que el usuario subiera una foto a una plataforma, a diferencia de los demás boletos, esa imagen sería un atributo del objeto o cómo podría integrar esa "decoración" al boleto? Igual ni siquiera estoy seguro de entender la implementación del patrón; como todos los patrones, conceptualmente es sencillo pero por ejemplo éste me parece algo difícil de aplicar. Gracias y gracias por el video.
La cosa con este patron es agregar funcionalidad, osea que se le agregue algún método que el objeto no posee. Como en el ejemplo de tutorialspoint se le agrega el método pintar de rojo. Puede requerir agregar un atributo o no, depende de la funcionalidad. Saludos!
Supongo que es abstracta porque de otra forma se podría instanciar dicha clase... se supone que la clase "cuentaDecorador" en este caso, su único objetivo debe servir solo como "clase decorador base" por decirlo de una manera, para a partir de ella crear "decoradores" con objetivos o tareas mas especificas. Entonces no tiene sentido instanciar CuentaDecorador por lo ya mencionado anteriormente. :)
Hola MitoCode, lo que no me queda claro es para persistir la información, se crea una nueva tabla en la DB con los decoradores, donde es una relación 1 : 1 y se define el decorador?
que el extend si bien agrega funcionalidad, lo hace de forma estatica es decir que no se puede modificar en tiempo de ejecucion, por lo tanto no podrias decidir cuando agregar o quitar esa funcionalidad que en el ejemplo es el "blindaje". En cambio tendrias que cambiar codigo fuente y eso esta mal porque te quita flexibilidad a tu codigo, y lo vuelve mas dificil de reusar.
Gracias por el vídeo. En el ejemplo no me que queda claro una cosa. Una vez hemos abierto uno cuenta de ahorros por ejemplo, el añadirle el decorador blindaje no debería ser actualizar esa cuenta de ahorros con blindaje en vez de abrir una nueva cuenta con blindaje. Saludos.
Hola :) en lugar de un mensaje en el método agregarBlindaje, en la practica la intención es agregar un atributo (o algo así) a la clase Cuenta, si es así, que debemos tener aquí? ... tienes alguna comunidad para discutirlo mejor... por favor Jaime, gracias
Corrígeme si me equivoco, no estas definiendo el patrón adapter en lugar de patrón decorator en el video? Si no es así cual seria la diferencia entre ambos?
Hola, el patrón Adapter se utiliza para transformar una interface en otra, mientras que el patrón decorador consiste en crear una nueva clase con caracteristicas de otra a la que añadir funcionalidad sin modificar la clase que se está añadiendo.
Eres un gran maestro MitoCode, no se porque no gobiernas el mundo, jajaja, un poco de humor, de verdad muchas gracias por compartir tus conocimientos y tu buena energía.
Hola, gracias a tus tutoriales he empezado a entender mejor los patrones de diseño, gracias :D
Excelente explicación, estoy entendiendo muy bien los patrones de diseño
Muchas gracias, por fin entendi esto.
Hola MitoCode. La función agregarBlindaje solamente está haciendo un print, sin embargo en un caso todavía más realista una decoración, según entiendo, implicaría añadirle un atributo a un objeto. Si supongamos fuera un boleto que en caso de ser VIP que representara el hecho de que el usuario subiera una foto a una plataforma, a diferencia de los demás boletos, esa imagen sería un atributo del objeto o cómo podría integrar esa "decoración" al boleto? Igual ni siquiera estoy seguro de entender la implementación del patrón; como todos los patrones, conceptualmente es sencillo pero por ejemplo éste me parece algo difícil de aplicar. Gracias y gracias por el video.
Tengo la misma duda.
La cosa con este patron es agregar funcionalidad, osea que se le agregue algún método que el objeto no posee. Como en el ejemplo de tutorialspoint se le agrega el método pintar de rojo. Puede requerir agregar un atributo o no, depende de la funcionalidad.
Saludos!
Pues a mi me pareció que exactamente lo mismo hacen el patrón proxy, y el facade. Pero con diferentes enfoques.
Hola buenas tarde, gran video. Tengo una consulta. Por qué la clase decorador es abstract? Y no una clase normal??
Supongo que es abstracta porque de otra forma se podría instanciar dicha clase... se supone que la clase "cuentaDecorador" en este caso, su único objetivo debe servir solo como "clase decorador base" por decirlo de una manera, para a partir de ella crear "decoradores" con objetivos o tareas mas especificas. Entonces no tiene sentido instanciar CuentaDecorador por lo ya mencionado anteriormente. :)
Excelente amigo muy buen video.
Hola MitoCode, lo que no me queda claro es para persistir la información, se crea una nueva tabla en la DB con los decoradores, donde es una relación 1 : 1 y se define el decorador?
Muy buena explicacion!
Gracias!
¿Cuál sería el beneficio en usar esto vs "extends"?
que el extend si bien agrega funcionalidad, lo hace de forma estatica es decir que no se puede modificar en tiempo de ejecucion, por lo tanto no podrias decidir cuando agregar o quitar esa funcionalidad que en el ejemplo es el "blindaje". En cambio tendrias que cambiar codigo fuente y eso esta mal porque te quita flexibilidad a tu codigo, y lo vuelve mas dificil de reusar.
Buen video gracias por el tutorial espero próximo s videos :)))
Seria mala practica poner en CuentaDecorador el metodo Agregar blindaje y ahorrar en crear BlindajeDecorador?
CuentaDecorador es una clase abstracta y por ende no podrias instanciarla para usarla en el metodo main
@@lukasas87 pero si no se declara como abstracta, se podría hacer como dice el estimado?
Gracias por el vídeo. En el ejemplo no me que queda claro una cosa. Una vez hemos abierto uno cuenta de ahorros por ejemplo, el añadirle el decorador blindaje no debería ser actualizar esa cuenta de ahorros con blindaje en vez de abrir una nueva cuenta con blindaje. Saludos.
Hola :) en lugar de un mensaje en el método agregarBlindaje, en la practica la intención es agregar un atributo (o algo así) a la clase Cuenta, si es así, que debemos tener aquí? ... tienes alguna comunidad para discutirlo mejor... por favor Jaime, gracias
Únete al grupo MitoCoders en fb
la clase abstracta va en cursiva
MITOCODE PODRIAS HACER UN VIDEO LIVE EL VIERNES DE JSD PORFAVOR D::
De jsf, bueno es una tecnología en menor tendencia de uso, pero lo tendré en cuenta quizás con Jakarta EE
buena Jaine
"son conceptos de Java basico..." yo estudiando hace 1 año: 00:00
Corrígeme si me equivoco, no estas definiendo el patrón adapter en lugar de patrón decorator en el video? Si no es así cual seria la diferencia entre ambos?
Hola, el patrón Adapter se utiliza para transformar una interface en otra, mientras que el patrón decorador consiste en crear una nueva clase con caracteristicas de otra a la que añadir funcionalidad sin modificar la clase que se está añadiendo.
EL decorator es similar al adapter
no entendí 🤔
No se entiende nada.
la primera vez no entiendo nada, la segunda entiendo mas, espero q a la 3ra me quede claro :D