Me gusta Prototype Pattern example de Steve Yegge y decidí impulsar un ejemplo de prueba rápida de concepto.¿Cómo maneja el ejemplo de prototipo de Yegge las variables de instancia?
Sin embargo, realmente no pensé bien. Si bien es excelente para especificar dinámicamente el comportamiento de los objetos y es una solución fácil para el ejemplo de Steve opinionated elf, todavía estoy tratando de encontrar la mejor manera de manejar variables de instancia.
Por ejemplo, supongamos que tengo un objeto AwesomeDragon. Luego quiero crear un objeto AwesomeDragonImmuneToFire para crear un hijo nuevo de AwesomeDragon (AwesomeDragonImmuneToFire hereda propiedades de AwesomeDragon) y 'poner' "ImmuneToFire" como una propiedad con un valor de 'verdadero'. Hasta aquí todo bien. Ahora digamos que quiero enviar mi objeto AwesomeDragon en un recorrido por las aldeas campesinas cercanas. Esto implicará la actualización de la propiedad 'posición' de AwesomeDragon. Sin embargo, en el momento en que haga esto, AwesomeDragonImmuneToFire despegará también.
Es la mejor solución para anular los valores de instancia al crear objetos, p. Ej. inmediatamente 'coloque' el valor 'posición' en AwesomeDragonImmuneToFire en el valor 'get' actual de 'posición'?
Pensé que la idea de los Prototipos era que no había clases reales, solo instancias de una clase de prototipo. El principio híbrido podría funcionar bien, supongo, pero me preocupa que luego se vea obligado a verificar los métodos de los objetos y las propiedades del prototipo. –
Gracias por los comentarios, por cierto, me gusta su ejemplo y votó en sentido ascendente. –
De hecho, solo hay instancias. Sin embargo, la instancia de Awesome utilizada como prototipo e instancia de Awesome utilizada en worlflow puede ser diferente a la del ejemplo anterior –