回答編集履歴

1

回答とは別にどうすればいいのかについての提案を追記

2018/12/22 18:17

投稿

len_souko
len_souko

スコア1348

test CHANGED
@@ -19,3 +19,13 @@
19
19
 
20
20
 
21
21
  オブジェクト指向に関しては解説をする人によって解釈が違う部分もあるしよくそれは違うだとかあってるだとかの議論が起きるくらいに誰でも一目でわかる何かがあるわけではないので自分・チーム内で何らかの納得できる理由とともに規約を決めると良いと思います。今回のような場合、駄目らしいからやめとこーで思考を停止するのではなく、なんでだろう?ならばどうすればいいのだろう?いやこれは別にいいだろう?等考えるのが大事だと思います
22
+
23
+
24
+
25
+ 追記:2018/12/23 03:10頃
26
+
27
+ ユーティリティクラスに持たせたいメソッドがどんなのかにもよりますが、例えば敵クラスと味方クラスで共通の処理を実装したいというのであれば、キャラクタークラスを定義してキャラクタークラスにそのメソッドを実装して敵クラスと味方クラスはキャラクタークラスを継承したクラスとして定義することができます
28
+
29
+ また、全然違うクラスだけど特定の同じメソッドを実装したいのであればインターフェースとして定義してやり、そのインターフェースへ拡張メソッドで追加するというのも手ですし、引数にどのクラスから読んだのかという情報を持たせて内部で切り分けを行うような場合なら、インターフェースで定義だけしておいて実装はそれぞれのクラスでそのクラスの場合に通るルートだけを実装して切り分けフラグを排除してしまえばよくなります
30
+
31
+ といった感じでどのような処理をどのようなクラスで使いたいかなどの条件によっては解決法も変わってきます