在我的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