2

A、B、C の 3 つのクラスがあるとします。各クラスには他のクラスがパラメータとして含まれています。このように:編集:

 +-----+  +-----+  +-----+
 |  A  |  |  B  |  |  C  |
 -------  -------  -------
 | X x |  | X x |  | Z z |
 | Z z |  | Y Y |  | Y y |
 -------  -------  -------

ゲッターとセッターが重複します。それで、それは悪い習慣であり、これを避けるべきですか? それとも、これはコード アナライザー (PMB など) によって重複コードと見なされるべきではありませんか?

「戦略パターン」について考えてみましたが、ゲッターとセッターだけでは、多すぎるのではないかと思います...

編集:私の最初の質問は、おそらく明確ではありません。問題は、共通の属性とまったく同じ getter/setter を持つ 2 つのクラス (リンクされていない) があるかどうかです。ソナーまたは PMD は、これらのメソッドを重複コードと見なす必要がありますか? そうでない場合、修正されますか?

4

4 に答える 4

2

すでに述べたように、最初に複製が本当に必要かどうかを検討してください。たぶん、それらは渡される共通のオブジェクトにあるはずです。多分それらは必要ありません。

ここで、それらが本当に必要であると仮定しましょう。もちろん、これは当てはまります。PMD のコピー ペースト検出機能を使用すると、重複としてカウントされるまでの最小行数を設定できます。ゲッター/セッターはそれぞれ 3 行 (または両方で 6 行) しかないため、そのすぐ上にしきい値を設定できます。

于 2012-05-26T02:44:43.377 に答える
1

これは循環参照であり、一般的に悪い習慣です。これを行わないように再設計できますか?

于 2012-05-25T14:23:21.863 に答える
0

セッターとゲッターは自動的に生成されるコードであるため、コードの重複はありません (手動で記述する人はいますか)?

考慮すべき唯一の問題は、データの重複があるかどうかです。クラス「A」と「C」のフィールド「b」は他の意味を持つ可能性があるため、あなたの例について言う方法はありません。

「クライアント」と「建物」のフィールド「住所」のようなものです。それは何か他のことを意味します。

于 2012-05-25T14:30:31.970 に答える