Podoba mi się Prototype Pattern example Steve'a Yegge'a i postanowiłem stworzyć przykład szybkiego dowodu.W jaki sposób prototyp wzorca Yegge obsługuje zmienne instancji?
Jednak tak naprawdę nie przemyślałem. Chociaż świetnie nadaje się do dynamicznego określania zachowania obiektów i jest łatwym rozwiązaniem dla przykładu Steve'a opinionated elf, nadal próbuję znaleźć najlepszy sposób na obsługę zmiennych instancji.
Na przykład, powiedzmy, że mam obiekt AwesomeDragon. Następnie chciałbym stworzyć obiekt AwesomeDragonImmuneToFire, aby nowe dziecko z AwesomeDragon (AwesomeDragonImmuneToFire odziedziczyło właściwości z AwesomeDragon) i "wstawiło" "ImmuneToFire" jako właściwość o wartości "true". Jak na razie dobrze. Teraz załóżmy, że chcę wysłać mój obiekt AwesomeDragon na wycieczkę po pobliskich wioskach chłopskich. Będzie to wymagało aktualizacji właściwości "pozycji" AwesomeDragon. Jednak w momencie, w którym to zrobię, AwesomeDragonImmuneToFire również wystartuje.
Jest najlepszym rozwiązaniem do przesłonięcia wartości instancji podczas tworzenia obiektu, np. natychmiast "umieść" wartość "pozycji" na AwesomeDragonImmuneToFire na aktualną wartość "get" pozycji?
Myślałem, że idea prototypów polegała na tym, że nie było prawdziwych klas - tylko instancje klasy prototypów. Zasada hybrydowa może działać w porządku, ale myślę, że trzeba będzie sprawdzić metody obiektów i właściwości prototypów. –
Dzięki za opinię przy okazji - podoba mi się twój przykład i przegłosowano. –
Rzeczywiście istnieją tylko przypadki. Jednak przykład Awesome użytego jako prototyp i przykład Awesome użytego w worlflow może być inny niż w przykładzie powyżej: –