Se me ocurrió una. En un videojuego, cuando aparecen muchos enemigos en pantalla, si los creas desde cero, el costo en términos de memoria y procesamiento será alto. Pero si copias un enemigo ya existente, podrías estar clonando también su estado actual, como un enemigo que ya ha perdido vida o está paralizado, lo cual no siempre es ideal. Es mejor clonar un prototipo inicial (un enemigo que ya fue cargado desde cero), para que todos los clones empiecen en un estado optimo (sin estatus como paralizado o con daño) ahorrando tiempo, Ram y procesamiento. Aunque para situaciones simples no parezca que afecte mucho, cuando se trabaja con muchos objetos o con datos pesados, tu entorno de trabajo sea limitado, o simplemente quieres que tu aplicación sea mas optima, esta optimización aligerara mucho la carga.
@@Ed-jl9hh tal vez entendí mal el video, pero según recuerdo en su método clone() esta instanciando un nuevo objecto, por lo cual esta asignando espacio en la memoria, y procesando la información del objecto a clonar, pero si entiendo tu punto. Puede ser útil. P/D: cuando hice este comentario, no lo había utilizado aun, pero luego si lo utilice en un juego precisamente. La experiencia que tuve utilizándolo es que me evito tener que declarar nuevas instancias. Haciendo mas legible el código.
Si te ha gustado el video puedes dejar un pulgar arriba y compartir en tus redes sociales, ¡Muchas gracias!
Excelente serie de patrones de diseño, continua así. Gracias!!
Gracias Héctor, muy buena explicación.
Buen video saludos (y)
Esto no está en el curso de UDEMY
Entiendo como funciona todo, pero no le encuentro la utilidad en un ejemplo real.
Se me ocurrió una.
En un videojuego, cuando aparecen muchos enemigos en pantalla, si los creas desde cero, el costo en términos de memoria y procesamiento será alto. Pero si copias un enemigo ya existente, podrías estar clonando también su estado actual, como un enemigo que ya ha perdido vida o está paralizado, lo cual no siempre es ideal. Es mejor clonar un prototipo inicial (un enemigo que ya fue cargado desde cero), para que todos los clones empiecen en un estado optimo (sin estatus como paralizado o con daño) ahorrando tiempo, Ram y procesamiento. Aunque para situaciones simples no parezca que afecte mucho, cuando se trabaja con muchos objetos o con datos pesados, tu entorno de trabajo sea limitado, o simplemente quieres que tu aplicación sea mas optima, esta optimización aligerara mucho la carga.
@@Ed-jl9hh tal vez entendí mal el video, pero según recuerdo en su método clone() esta instanciando un nuevo objecto, por lo cual esta asignando espacio en la memoria, y procesando la información del objecto a clonar, pero si entiendo tu punto. Puede ser útil.
P/D: cuando hice este comentario, no lo había utilizado aun, pero luego si lo utilice en un juego precisamente. La experiencia que tuve utilizándolo es que me evito tener que declarar nuevas instancias. Haciendo mas legible el código.