回答編集履歴

1

コメントを受けて追記

2024/06/18 16:24

投稿

pecmm
pecmm

スコア647

test CHANGED
@@ -6,3 +6,27 @@
6
6
 
7
7
  また、引数の使いまわしが多いが状態として持たせるべきでない…という場合は引数用クラスの導入なども検討します。
8
8
  (全体的に引数オブジェクトとしたり、一部だけをオプション引数として使いまわしたりなど)
9
+
10
+
11
+ ## 2024/06/19 追記
12
+ > おおよそ同じような認識
13
+ とコメントで言われていますが、こちらの意図と食い違っていたので補足しておきます。
14
+
15
+
16
+ 質問としては「プロパティだと使いまわせて呼び出し側が楽」という方針だと思われます。
17
+
18
+ 回答としては「正しいかどうかで使い分けるべき」という別の方針で
19
+ * 一連の処理を通じて同一の値であるべきならプロパティなどで実現するべき
20
+ * たまたま同じ値ならば全て引数で
21
+ と回答しています。
22
+
23
+ (この辺りは私の回答が言葉不足だったかもしれません)
24
+
25
+ 「楽かどうか」という判断基準は、実際のところ「呼び出し側のコード」に依存してそのたびに結果が変わる可能性があります。
26
+ 1回しか呼び出ししないものは全て引数でよいですし、複数回の呼び出しがあれば「たまたま同じ箇所」を共通化したくなります。
27
+
28
+ ですが、常に「正しいかどうか」で判断するとなると
29
+ 例え1回しか呼び出ししないものであっても、「どうあるべきか」で考えて結果的にプロパティにする場合もありえます。
30
+ そうすると1回しか呼び出さないにも関わらずわざわざコンストラクタやsetterを用いるものと引数で渡すものを分けるため、
31
+ むしろ呼び出し側やテストが煩雑になることすらありえます。
32
+ (私はどちらかといえば、そちらの方が望ましいと考えています)