11

インスタンス変数の宣言をクラスの最後に置く開発者を見たことがありますが、ほとんどの場合、クラスの一番上に配置されています。これを行う理由として考えられるのは、文体の好みか、IDE での操作が容易になることだけです。このスタイルを選択するより正当な理由はありますか?

4

5 に答える 5

17

「「実装」ではなく「インターフェース」へのプログラム」のためです。(Gang of Four 1995:18) ( http://en.wikipedia.org/wiki/Design_Patterns#Introduction.2C_Chapter_1 )、クラスの最後でインスタンス変数を宣言することを好む人もいます。理論は、クラスのユーザーは、何かがどのように行われるか (変数) ではなく、クラス (メソッド) で何ができるかに関心があるというものです。クラスの先頭にメソッドを配置すると、ユーザーがコードを見るときに最初にメソッドが公開されます。

于 2008-10-20T14:31:48.797 に答える
15

何らかの方法でそれを行う特に「正当な」理由はありません。本当に重要なのは、同じプロジェクトの全員が同じ方法でそれを行うということだけです。

ただし、私の経験では、それらを一番上に配置する方がはるかに一般的であり、Java スタイル ガイドラインで推奨されている方法であるため、それを使用します。

Jalopyや Eclipse に付属の自動ソース コード フォーマッタを使用して、選択した規則を適用できます。

于 2008-10-20T14:14:19.143 に答える
2

それはほとんど(完全ではないにしても)個人的な好みです。私は彼らが一番上にいるのが好きですが、それが私が慣れ親しんでいる方法であるというよりも、より良い理由を与えることはできませんでした.

于 2008-10-20T14:13:46.150 に答える
1

ほとんどのインスタンス変数はprivate. 可視性が高い順に宣言すると、上位に表示されますが、これも妥当です。

私が気に入らないのは、private フィールドの後に public フィールドが続き、private メソッドが続くことです。クライアント クラスを開発している場合は、すべてのパブリック パーツをまとめたいと思います (これだけに関心があるためです)。

于 2009-09-11T15:56:57.160 に答える
1

私は常に、プライベート クラス レベルの変数がある場合、構成をハードコードしたか、何らかの方法で状態を追跡していると合理化してきました。状態を追跡している場合は、1) ファイルを開いた瞬間からファイルにコードを書き込もうとしているすべての人にそれを明らかにする必要があります。2) 多数の状態を追跡することはコードの匂いがします。それをやっているなら、それを明白にしたいのです。したがって、それを一番上に置くと、悪いコードがより明白になり、クラスを編集する将来の人々への警告として機能します。

ただし、パブリック/保護されたフィールドとプライベート フィールドおよびメンバーを確実に分離してください。

于 2014-08-01T21:34:27.513 に答える