Реализует OnClickListener VS. New Button.OnClickListener () {};

У меня вопрос о внедрении OnClickListeners для разработки с помощью ADT. Я не уверен, какой путь более эффективен, может кто-нибудь, пожалуйста, предоставить мне pro и con для каждого подхода?

class x extends Activity implements OnClickListener { button.SetOnClickListener(this); OnclickListener(View v) { switch(v.getGetId()); { case R.id.y: //do stuff here break; . . . } } } 

<-VERSUS->

 class a extends Activity { . . . btn.setOnClickListener(new Button.OnClickListener() { OnClickListener(View v) { //do stuff here } }); } 

Solutions Collecting From Web of "Реализует OnClickListener VS. New Button.OnClickListener () {};"

Я думаю, что это в основном случай личных предпочтений. Любая разница в производительности, вероятно, будет незначительной.

Лично я предпочитаю вложенный класс:

  1. Его труднее испортить
  2. Заявления операторов уродливы
  3. Вы можете использовать локальные переменные, которые могут быть полезны

Но некоторые люди считают, что вложенные классы уродливы, и поэтому предпочитают подход к реализации. Этот подход работает лучше, если у вас есть только один слушатель, реализованный в этой деятельности.