2016-07-31 3 views
1

リスナー用に別のクラスを作成する利点は何ですか?以下のコードのどれが効率的で、なぜですか?リスナー用に別のクラスを作成する

TextWatcher

mEditText.addTextChangedListener(mNumberWatcher); 
TextWatcher mNumberWatcher = new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

     } 

     @Override 
     public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

     } 

     @Override 
     public void afterTextChanged(Editable editable) { 


     } 
    }; 

のための別のクラスは個別のクラス

mEditText.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

     } 

     @Override 
     public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

     } 

     @Override 
     public void afterTextChanged(Editable editable) { 

     } 
    }); 
+0

分離されたクラスを使用するとコードの可読性が向上し、そのインスタンスを別のリスナーにも使用できます。 – SadeghAlavizadeh

+0

@Virgoirリスナーコードを複数回使用しない場合は、別のクラスを使用する必要がありますか?パフォーマンスに影響しますか? –

+0

いいえ、パフォーマンスリークはありません。 – SadeghAlavizadeh

答えて

1

それは多くありませんで、私たちのコードで同じリスナーを複数回使用する必要があるときは、リスナーのための別のクラスを使用する必要があります。クラスの

+0

リスナーを複数回使用しない場合は、別のクラスを使用する必要がありますか?パフォーマンスに影響しますか? –

+0

複数回使用しない場合は、別々のクラスを作成する必要はありません。パフォーマンス上の問題はありません。 –

0

デザインパターンに合わせた別のクラスまたは内部スタティックを作成する必要があります。通常の内部クラスまたはAnonymousインスタンシエーションは、メインクラスの参照を保持するためメモリリークを引き起こす可能性があり、GCがそれを収集することを許可しない可能性があり、それらを使用しないでください。

関連する問題