第一次在这里发帖。找不到任何人问同样的问题,所以我一定是做错了。
背景故事:我正在编写我的第一个基于钱包 JS 画布的 8 位冒险游戏。我写了一个我非常满意的概念证明,现在我想回去重构我的工作,使其尽可能干净、优雅和可重用。我熟悉高级 JS 和设计模式,我想尽可能多地使用它们。
我在哪里:我有以下对象:Screen、Controls、Scene、Player、Sprite 和 Main,它们都使用 Module 模式,并通过 requireJS 加载。
现在我想制作更多的游戏对象,以不同的行为扩展基础 Sprite 对象。是否甚至可以扩展模块模式,以便您仍然可以访问底层原型的方法?
例如,我想向某些模块添加步行和谈话行为,这会影响它们的底层更新和绘制方法。我认为通过原型链调用每个原型方法将是基本的,但事实证明它比我预期的要困难。
任何人都有一个装饰器或组合模式的例子,可以应用于模块模式并创建具有不同行为的对象?
如果不可能,我该怎么做?我应该完全放弃模块模式吗?