Соглашение об использовании анонимного класса и интерфейса реализации

С точки зрения развития Android , в то время как вы программируете, какой путь вы предпочитаете реализовать для слушателя? Или в каком направлении, по вашему мнению, лучше всего читать читаемый код? Я привел два примера об этих вещах, но думаю, что более сложные классы, такие как более одного слушателя 🙂

Первый пример, который является анонимным классом:

public class SenderReceiverActivity extends Activity { Button cancelButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sending); cancelButton = (Button) findViewById(R.id.button1); cancelButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { } }); }} 

Второй пример, реализующий интерфейс:

 public class SenderReceiverActivity extends Activity implements OnClickListener { Button cancelButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sending); cancelButton = (Button) findViewById(R.id.button1); cancelButton.setOnClickListener(this); } public void onClick(View v) { } } 

Я думаю, что 2-й вопрос хорош как

1- вы можете обрабатывать несколько просмотров, щелкая в одном месте …

2- он делает код короче и легко читается.

3- он прост в обслуживании.

4- если вы используете концепцию Base Activity, как в вашем проекте, тогда это также полезно.

Если у вас есть одна кнопка, тогда первый подход прав, потому что в вашем коде нет какой-либо сложности, но когда у you have many button then second is more clear ,just one onClick method for many buttons and check id of button using v.getId()

Но никаких изменений в функциональности нет.

Ну, между этими двумя исключениями не так много различий: во втором случае у вас есть доступ к методу onClick(View v) извне класса.

Если это касается меня, я предпочитаю первый подход, потому что нередко более одного компонента имеют одно и то же поведение при нажатии.