3

初投稿はこちら。この同じ質問をする人を見つけることができないので、私はそれについてすべて間違っているに違いありません.

バック ストーリー: 私は最初の財布 JS キャンバス ベースの 8 ビット アドベンチャー ゲームを書いています。私は非常に満足している概念実証を書きましたが、今は戻って、自分の作業を可能な限りクリーンでエレガントで再利用可能なものにリファクタリングしたいと考えています。高度な JS やデザイン パターンに精通しており、それらを可能な限り活用したいと考えています。

私がいる場所: 次のオブジェクトがあります: Screen、Controls、Scene、Player、Sprite、Main のすべてがモジュール パターンを使用し、requireJS を介して読み込まれます。

ここで、基本の Sprite オブジェクトをさまざまな動作で拡張するゲーム オブジェクトをさらに作成したいと考えています。基になるプロトタイプのメソッドに引き続きアクセスできるように、モジュール パターンを拡張することは可能ですか?

たとえば、基礎となる update および draw メソッドに影響を与える特定のモジュールに walk および talk 動作を追加したいと考えています。プロトタイプ チェーンを介して各プロトタイプ メソッドを呼び出すことで、これは初歩的なものになると思っていましたが、予想以上に難しいことが証明されています。

Module パターンに適用して異なる動作のオブジェクトを作成できる Decorator または Composition パターンの例はありますか?

不可能な場合、どうすればよいですか?モジュール パターンを完全に廃棄する必要がありますか?

4

1 に答える 1

0

可能である必要があります:

define('mod1', function() {
   ...
});

define('mod2', ['mod1'] function(Mod1) {
   Mod1.prototype.newFunction = function() {
   ...
   };
});
于 2013-01-04T22:54:22.003 に答える