我喜歡Steve Yegge的Prototype Pattern example,並決定掀起一個概念示例的快速證明。Yegge的原型模式示例如何處理實例變量?
但是,我並沒有真正想過。儘管動態指定對象的行爲非常好,並且對Steve的opinionated elf示例很簡單,但我仍然試圖找出處理實例變量的最佳方法。
例如,假設我有一個AwesomeDragon對象。然後我想創建一個AwesomeDragonImmuneToFire對象,這樣我就可以讓AwesomeDragon(AwesomeDragonImmuneToFire從AwesomeDragon繼承屬性)的新孩子和'put'「ImmuneToFire」作爲值爲'true'的屬性。到現在爲止還挺好。現在讓我們說我想在附近的農民村莊參觀我的AwesomeDragon對象。這將涉及更新AwesomeDragon的'位置'屬性。然而,我做這個AwesomeDragonImmuneToFire的那一刻也會起飛。
是創建對象時覆蓋實例值的最佳解決方案,例如,立即將AwesomeDragonImmuneToFire上的'position'值'放'到'position'的當前'get'值上?
我認爲原型的想法是沒有真正的類 - 只有原型類的實例。混合原理可以工作好,但我擔心你不得不檢查對象方法和原型屬性。 – 2008-10-23 02:19:53
感謝您的反饋意見 - 我喜歡您的榜樣和upvoted。 – 2008-10-23 02:20:48