実現したいこと
仙塲大也 著 『良いコード悪いコードで学ぶ設計入門』で、「getter/setterを多用すると良くない」という旨の記述がありましたが、具体的にどのような実装を心がければ良いのかピンときません。
また、メソッドの正しい実装方法がよくわかりません。
発生している問題・分からないこと
例えば、攻撃キャラが防御キャラに攻撃するとき、攻撃キャラの攻撃力、レベル、魔法威力と、防御キャラの防御力、HPを使ってダメージ計算をする必要があるとします。攻撃キャラは攻撃のみ、防御キャラは防御のみ可能です。
僕は、攻撃キャラと防御キャラは別概念と考え、別々のクラスとして設計しました。しかし、その場合攻撃キャラ防御キャラどちらかにダメージ計算メソッドを実装する必要があり、ダメージ計算メソッドを持つクラスは、もう一方のgetterを使わなければいけなくなってしまいそうです。また、攻撃キャラと防御キャラの属性をどちらも使った計算のため、そもそもダメージ計算メソッドは攻撃キャラと防御キャラどちらが持っておくべきものなのかもわかりません。
今回の例だけでなく、他の例でも応用可能な考え方等ありましたら併せてご教授お願い致します。
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
「委譲を行う」、「引数を渡さず尋ねるだけで結果が帰ってくるようにする」等の記述がネットに沢山転がっていましたが、今回の例で活用できる考え方なのかイマイチわかりません。
補足
技術レベルは以下の通りです。↓
学生で大規模開発経験なし。
簡単なボードゲーム、jspやサーブレットを用いた簡単なwebサイト等の開発経験はあります。
OracleのJavaSilver取得済みです。
クラス設計、オブジェクト指向等に関しては全くの初心者です。上記の『いいコード悪いコード』やネットの記事等で勉強を進めている状態です。
ご丁寧な回答、本当にありがとうございました!
全て参考にさせて頂きます。
回答4件
あなたの回答
tips
プレビュー