コースワークとして提出するパッケージの一部である大規模なクラス(40個程度のメソッド)があります。現在、これらのメソッドはユーティリティpublic/privateなどの点でかなり乱雑です。私は賢明な方法でそれらを注文したいと思います。これを行う標準的な方法はありますか?例えば。通常、フィールドはメソッドの前にリストされ、コンストラクターは他のメソッドの前にリストされ、ゲッター/セッターは最後にリストされます。残りの方法はどうですか?
いくつかの規約では、最初にすべてのパブリックメソッドをリストし、次にすべてのプライベートメソッドをリストします。つまり、意味がわかれば、インターフェースが含まれていなくても、APIを実装から簡単に分離できます。
別のアイデアは、関連するメソッドをグループ化することです-これにより、既存の大きなクラスをいくつかのより小さく、よりターゲットを絞ったものに分割できる継ぎ目を見つけやすくなります。
クラス(静的)変数:最初にパブリッククラス変数、次に保護クラス変数、次にプライベートクラス変数。
インスタンス変数:最初にパブリック、次に保護、次にプライベート。
コンストラクター
メソッド:これらのメソッドは、スコープやアクセシビリティではなく機能ごとにグループ化する必要があります。たとえば、プライベートクラスメソッドは、2つのパブリックインスタンスメソッドの間に配置できます。目標は、コードの読み取りと理解を容易にすることです。
ソース: http://www.Oracle.com/technetwork/Java/codeconventions-141855.html
"コード規約"へのより正確なリンク: "クラスとインターフェイスの宣言"
広く受け入れられている標準があるかどうかはわかりませんが、私自身の好みはそうです。
toString
、equals
、hashcode
nextなどの標準メソッド単一のクラスの40個のメソッドは少し多くなります。
機能の一部を他のクラス(適切な名前のクラス)に移動するのは理にかなっていますか。そうすると、理解しやすくなります。
少ない場合は、自然な読み上げ順序でリストする方がはるかに簡単です。よくあるパラダイムは、beforeまたはafterのいずれかを、必要な順にリストすることです。
これは通常、main()
が上または下になることを意味します。
私の「慣習」:インスタンスの前に静的、プライベートの前にパブリック、メソッドの前にコンストラクター、しかしメインメソッド(存在する場合)。
また、Eclipseは、何らかの理由でクラスメンバーを混同した場合に、クラスメンバーをソートする可能性を提供します。
クラスファイルを開き、メインメニューの[ソース]に移動して[メンバーの並べ替え]を選択します。
ここから: Eclipseでのメソッドの並べ替え
Eclipseを使用していますか?もしそうなら、私はデフォルトのメンバーのソート順に従うことにします。なぜなら、それはあなたのコードを読む人にとって最も馴染みがありそうだからです(私のお気に入りのソート順ではありませんが)。