オブジェクト指向について聞きたいだが
■ このスレッドは過去ログ倉庫に格納されています
他のクラスに依存するときってフィールドでインターフェイスを持たせるのとメソッドの引数にインターフェイスを持たせるのとどっちがいい?例えばHeroクラスのattackメソッドをattack(Attack enemy){enemy.substactHP(10);}とするかattack(){this.enemy.substactHP(10);}とするか 俺ならAttacker.Attack(hero, enemy);ってする 素人だけど前者の方がわかりやすい
ループとか楽そう ゲームのキャラクラスは肥大しやすいから攻撃や移動はキャラクラスには持たせない >>2
メソッドに持たせるのがいいのね
あとそれ参考になった >>5
どっちでもいい
そもそも前者と後者では意味が違う
後者は敵(ターゲット)を保持しているし Attackってエンティティやろ今のJavaは
引数に持たせなくても@マークでええぞ enemyをHeroクラス内に入れるのはどう考えても設計おかしいでしょ >>10
そういう設計にしてる中級者向け技術本とか多いから疑問だった Heroにenemyを持たせる場合は敵(ターゲット)を維持する必要がある場合
enemyではなくattackTargetとかにするけど
数ターンに渡ってその敵の方向へ移動したりその敵を攻撃対象にし続けるとかそういうゲームの場合ね
そういう場合でも攻撃処理はHeroの外に持たせる
(new Attacker(hero)).Attack(){
hero.AttackTarget.Hp -=10;
} ■ このスレッドは過去ログ倉庫に格納されています