2016-05-24 2 views
-1

私は周りを探索していますが、このためのコンベンションがあるかどうかを見てきましたが、私は見ていません。私は大規模なコミュニティが何であるかを見たいと思います。Java:クラス内のメソッドの注文

Javaでクラスを作成する場合は、どのような方法でもメソッドを整理しますか?このためのコンベンションはありますか?

たとえば、パブリックメンバー、次にパブリックメンバー、プライベートメンバーを最初にリストしますか?おそらくアルファベット順ですか?おそらくメソッドが呼び出される方法、つまり初期化メソッドが最初に、ワーカー/ヘルパーメソッドが次に、最後にメソッドをクリーンアップする順序で?

あなたは何をしていますか、なぜですか?これを行うための推奨される方法はありますか?

+2

に2つの有用な答えを見つけることができますそれ。次のhttp://geosoft.no/development/javastyle.html –

+0

を読むことができます。それはあなたとあなたのチームの裁量に左右されます。あなたのプログラムのコードであなたの '結束 'を維持していることを確認してください。 –

+2

IDEはすべてのメンバーを検索してナビゲートするのに役立ちますので、注文する必要はありません。 –

答えて

0

これを定義するための規約はありません。しかし、静的メソッドを最初に配置し、次に非静的メソッドを配置するのは良いプログラミング方法です。

+0

"静的メソッドを最初に"特に優れた方法だと思う理由を説明できますか? –

+0

これは、コードを読みやすくするためのものです。わかりやすく、簡単に再エンジニアリングできるようになりました。それ以上のものはありません –

+0

その場合は、「それは」というより、「考える」という意味です。静的メソッドが一貫して一番下にあるかどうかを理解することやリファクタリングすることは難しくありません(クラスのメンバーではないので、*私は*より良い習慣と考えています*単にプライベートメンバーにアクセスできる方法ですクラスのインスタンスの)。 –

8

Google's Java Style Guideの関連するセクションは言う:

クラスのメンバーの順序は学習可能性に大きな影響を持つことができますが、それを行う方法には、単一の正しいレシピはありません。クラスによってメンバーの順序が異なる場合があります。

重要なことは、各クラスがメンバを論理的な順序で順序付けることです。たとえば、新しいメソッドは、習慣的にクラスの終わりに追加されるだけではなく、それは論理的な順序ではない「日付追加による年代順」の結果をもたらします。

これは明らかに1つのスタイルガイドであり、唯一の選択肢ではありません。あなたの/あなたのチームの状況のた​​めに他のものが存在し、より良く働くかもしれません。

2

私はパブリックメソッドとプライベートメソッドを分割するために使用します。通常は、すべてのgetterとsetterをクラスの末尾に配置します。これはgetterとsetterがあまり頻繁に変更されないメソッドなので、私は他の、しばしばより有用なメソッドを編集するためにすべてのページをスクロールしたくありません。

ところで、あなたの変数を同じ方法でグループ化する公式な方法はないと思います。

だから私は従うパターンはこれです:

public class MyClass{ 


    //variables 
    private int number; 
    private String name; 

    .... 

    //constructors 
    public MyClass(){ ... } 

    public MyClass(String name){ ... } 



    //public methods 
    public methodOne(){ ... } 
    public methodTwo(){ ... } 

    //private methods 
    private methodPrivOne(){ ... } 
    private methodPrivTwo(){ ... } 


    //getters and setters 
    public void setName(String name){ ... } 
    public String getName() { ... } 
} 

Herehereあなたが行うには*公式*方法がないよう質問は、意見に基づいているあなたの質問

+1

私はこのスタイルが非常に一般的であると思います。 – Jazzepi

関連する問題