3

ゲームのキャラクタークラスを作成しようとしています。

キャラクタークラスについて: -戦士、射手、王様など、さまざまなキャラクターがいます。-それぞれ、攻撃、防御などの異なるプロパティを持っています。

ここでの私の質問は、継承または構成を使用する必要がありますか? Character クラスがありますが、Warrior クラスを作成して Character クラスを拡張する必要がありますか、それとも String ID ="Warrior" のような識別子を Character クラスに入れる必要がありますか?

4

6 に答える 6

1

私が好きな方法は、必要なすべてのクラスのすべてのプロパティとパラメーターを書き出すことです。クラス間で共有されるパラメーターを確認し、それにどのようにアプローチするかを決定します。

既に Character クラスがあるため、Character の実際のサブクラスをどの程度変更するかを決定します。

また、クラスごとに異なるインターフェイスを使用することもできます。インターフェイスには、特定のクラスに固有のメソッドがあります。

ためらう必要はありません。どのように処理するかはそれほど重要ではありませんが、インターフェイスと継承により、コードが理解しやすくなります。幸運を!

于 2013-04-10T16:30:21.393 に答える
0

String id = "Warrior" は "文字列型プログラミング" のように聞こえるので、避ける必要があります。

経験則として、クラス階層は深くすべきではありません (3 レベルまたは 4 レベル以下)。

基本クラス (Character) といくつかの派生クラス (Warrior、Wizard など) を定義しますが、それ以上深くはなりません。

  • キャラクター < ウォリアー < アックスウォリアー
  • キャラクター < ウィザード < ライトウィザード
  • キャラクター < 魔法使い < 悪の魔法使い

あなたのキャラクターは異なる属性を持っているように見えますが、本質的に同じ行動 (攻撃、防御など) を持っています。しかし、攻撃と防御の手段は異なります (ウォリアーはハッシュとスラッシュを行い、ウィザードは魔法を唱えます)。これは、継承とポリモーフィズムの良い候補です。

于 2013-04-10T16:18:16.363 に答える
0

モジュラー設計と(後で)複雑さの点で最善の解決策は、「戦士」または「射手」などにのみインターフェイスを使用できるため、基本クラスを拡張することだと思います.

また、特定の文字のみに設定するさまざまなメソッドまたはプロパティを追加することを考えてください (現在または後で)。

お役に立てれば。

一番、

于 2013-04-10T16:15:17.637 に答える
0

すべてのキャラクターが特定のプロパティを共有する場合、そのプロパティを持つ Character クラスを作成し、特定の種類のキャラクターごとに Character を拡張して特定のプロパティを追加します。

于 2013-04-10T16:16:21.393 に答える