Javaのプログラムでコールバックを書くとき、インターフェースを継承するか、
無名クラスを使うか、どちらのやり方が優れているのか、疑問に思っている。
たとえば、Androidのプログラムでボタンが押されたときに反応する処理を書きたいとき、
インターフェースを継承するならば、
class MyClass implements OnClickListener{ public void onClick(View v) { // ボタンが押されたときの処理 } }
のような感じになり、無名クラスを使うときは
class MyClass { @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); Button button; // ボタンを取得する処理・・・(省略) button.setOnClickListener(new OnClickListener() { public void onClick(View v) { // ボタンが押されたときの処理 } }); } }
という感じになり、どちらもできることに変わりはないのだが
パフォーマンス的な違いとかあるのだろうか?
個人的には後者の無名クラスを使った書き方の方が好きだが・・・。
ピンバック: 【Java】イベントリスナの書き方についての考察 – ザワプロ!