在我的Android項目中,我定義了幾個回調來操作按鈕點擊,連接事件或UI事件,如Dilaog.onShow()。爲了演示目的,我選擇了一個Runnable接口,它必須從某些Activity代碼啓動。用Java,我有不同的表達方式。什麼是組織回調的首選方法?
一種模式是使用匿名類
runOnUiThread(new Runnable() {
public void run() {
doSomething();
}
});
private void doSomething() {
}
另一個 - 定義一個內部的私有類,即
private DoSomething implements Runnable {
public void run() {
// do something;
}
}
...
runOnUiThread(new DoSomething());
另一個 - 使用私有成員,像這樣:
private final Runnable doSomething = new Runnable() {
public void run() {
// do something;
}
}
...
runOnUiThread(doSomething);
這是另一個,我最喜歡的,因爲一方面它並不實際構造o除非有人真的使用它,因爲它避免了額外的類,因爲如果需要它可以採用參數。
private Runnable doSomething() {
return new Runnable() {
public void run() {
// do something;
}
}
}
...
runOnUiThread(doSomething());
我不是在尋找品味或宗教信仰的觀點,而是代碼可維護性和性能。我希望收到一些提示和建議,這些提示和建議可以幫助我發展自己的偏好,可能會根據特定的情況制定不同的偏好。
劇透:
Java的進展已使這個問題已經過時,見接受的答案。
相關:[這是\ [代碼質量]的結尾嗎?](http://meta.stackoverflow.com/q/313767/4639281)。如果您可以編輯這個問題,以不基於意見的方式對其進行標記,並刪除[tag:code-quality]標籤,那麼我將收回我的近距離投票(如果它再次關閉,則投票重新打開)。 – 2016-01-07 01:38:44
對不起,我不知道這個有問題的標籤。 – 2016-01-07 04:51:55
你的問題仍然有過分基於意見的措辭。我相信它可以被編輯爲不是這樣,但這取決於你。 – 2016-01-07 04:53:31