X



オブジェクト指向について聞きたいだが
■ このスレッドは過去ログ倉庫に格納されています
0001以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/05/09(月) 19:13:57.467ID:JE+hScBOM
他のクラスに依存するときってフィールドでインターフェイスを持たせるのとメソッドの引数にインターフェイスを持たせるのとどっちがいい?例えばHeroクラスのattackメソッドをattack(Attack enemy){enemy.substactHP(10);}とするかattack(){this.enemy.substactHP(10);}とするか
0002以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/05/09(月) 19:17:10.950ID:YOR87VjM0
俺ならAttacker.Attack(hero, enemy);ってする
0003以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/05/09(月) 19:20:12.486ID:FnM16e1hd
素人だけど前者の方がわかりやすい
ループとか楽そう
0004以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/05/09(月) 19:22:07.998ID:YOR87VjM0
ゲームのキャラクラスは肥大しやすいから攻撃や移動はキャラクラスには持たせない
0005以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/05/09(月) 19:23:46.003ID:FnM16e1hd
>>4
前者と後者ではどっちがいいんだ?
0007以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/05/09(月) 19:27:08.082ID:YOR87VjM0
>>5
どっちでもいい
そもそも前者と後者では意味が違う
後者は敵(ターゲット)を保持しているし
0008以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/05/09(月) 19:36:23.971ID:R+mFT6iI0
Attackってエンティティやろ今のJavaは
引数に持たせなくても@マークでええぞ
0009以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/05/09(月) 19:51:50.353ID:kMCcHR7Da
どっちかなら前者で
0012以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/05/09(月) 20:10:15.465ID:YOR87VjM0
Heroにenemyを持たせる場合は敵(ターゲット)を維持する必要がある場合
enemyではなくattackTargetとかにするけど
数ターンに渡ってその敵の方向へ移動したりその敵を攻撃対象にし続けるとかそういうゲームの場合ね

そういう場合でも攻撃処理はHeroの外に持たせる

(new Attacker(hero)).Attack(){
hero.AttackTarget.Hp -=10;
}
0013以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/05/09(月) 20:11:01.467ID:YOR87VjM0
文法がおかしくなった
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況