【发布时间】:2018-07-22 18:06:18
【问题描述】:
在我的 android 项目中,我在 4 个不同的 Activities 中使用了 4 个 Recyclerviews,我需要 3 个方法 onClick、onButtonClick 和 onDeleteClick。有些方法使用了有些方法没有。首先,我在每个我需要的Activity 中创建了一个内部interface,并为它们提供了适当的方法。但是因为它们在重复,所以我创建了一个单独的 interface 类,其中包含所有 3 种方法,然后在我的 4 Activities 中引用它。我覆盖了我需要的方法和我不需要的方法,我只是留下了空的身体。最好/首选的方式是什么?
1.
public class A {
private OnItemClickListener mListener;
public interface OnItemClickListener {
void onDeleteClick(int position);
}
...
@Override
public void onDeleteClick(int position) {
errase(position);
}
}
2.
public interface OnItemClickListener {
void onItemClick (int position);
void onDeleteClick (int position);
void onButtonClick (int position);
}
和
public class A {
private OnItemClickListener mListener;
...
@Override
public void onItemClick(int position) {
//empty because I dont need it here
}
@Override
public void onButtonClick(int position) {
//empty because I dont need it here
}
@Override
public void onDeleteClick(int position) {
errase(position);
}
}
【问题讨论】:
-
创建一个接口并给所有的东西一个
default空体......然后你只需要覆盖应该做任何事情的方法。这与性能无关,只是开发人员的效率。 -
嵌套接口是静态的。没有“内部界面”之类的东西。