Java 性能:内部接口与单独的接口类
在我的android项目中,我在4个不同的Java 性能:内部接口与单独的接口类,java,methods,interface,Java,Methods,Interface,在我的android项目中,我在4个不同的活动中使用了4个Recyclerviews,我需要3种方法onClick,onbutton单击和ondelete单击。有些方法被使用,有些则没有。首先,我在我需要的每个活动中创建了一个内部接口,并使用它们创建了一个适当的方法。但是因为它们是重复的,我用所有3种方法创建了一个单独的接口类,然后在我的4个活动中引用它。我覆盖了我需要的和我不需要的方法,我只是留下了一个空的身体。最好/首选的方式是什么 一, 二, 及 您可以创建一个适配器类,并为接口中声明的所
活动中使用了4个Recyclerviews
,我需要3种方法onClick
,onbutton单击
和ondelete单击
。有些方法被使用,有些则没有。首先,我在我需要的每个活动
中创建了一个内部接口
,并使用它们创建了一个适当的方法。但是因为它们是重复的,我用所有3种方法创建了一个单独的接口
类,然后在我的4个活动
中引用它。我覆盖了我需要的和我不需要的方法,我只是留下了一个空的身体。最好/首选的方式是什么
一,
二,
及
您可以创建一个适配器类,并为接口中声明的所有方法提供空实现,这将减少重复的代码行,然后扩展它。(但不确定这是否是java 8或更高版本的最佳方式)
在您的代码中
interface OnItemClickListener {
void onItemClick(int position);
void onDeleteClick(int position);
void onButtonClick(int position);
}
abstract class Adapter implements OnItemClickListener {
public void onItemClick(int position) {};
public void onDeleteClick(int position) {};
public void onButtonClick(int position) {};
}
public class A extends Adapter
{
@Override
public void onDeleteClick(int position) {
errase(position);
}
}
您可以创建一个适配器类,并为接口中声明的所有方法提供空实现,这将减少重复的代码行,然后扩展它。(但不确定这是否是java 8或更高版本的最佳方式)
在您的代码中
interface OnItemClickListener {
void onItemClick(int position);
void onDeleteClick(int position);
void onButtonClick(int position);
}
abstract class Adapter implements OnItemClickListener {
public void onItemClick(int position) {};
public void onDeleteClick(int position) {};
public void onButtonClick(int position) {};
}
public class A extends Adapter
{
@Override
public void onDeleteClick(int position) {
errase(position);
}
}
在我看来,没有“最佳/首选”方式:
由于嵌套接口隐式地不在内部(它们是隐式静态的),所以不存在对封闭类实例的隐藏引用。因此,普通接口和嵌套接口之间的性能差异应该为零
Java风格指南不/不会推荐一种形式优于另一种形式作为通用语句
我还没听说过有人试图对此进行科学的可用性研究
我还没听说过有人试图科学地衡量开发人员对此的看法
这就给我们留下了“随机的贡献者意见”,我不相信这些意见能在这方面指导我。(每个人在阅读代码时的心理过程都是不同的…)
一句话:没什么
根据实际情况,由您决定您认为哪个更具可读性/可维护性。但是:
- 我建议你在选择上保持一致
- 如果您的API可能被其他人使用/维护,最好与他们讨论。与同事达成共识将是一件好事,甚至是“同意不同意”,然后继续前进
但不要挂断电话,因为这绝对是个小问题。在我看来,没有“最佳/首选”方式:
由于嵌套接口隐式地不在内部(它们是隐式静态的),所以不存在对封闭类实例的隐藏引用。因此,普通接口和嵌套接口之间的性能差异应该为零
Java风格指南不/不会推荐一种形式优于另一种形式作为通用语句
我还没听说过有人试图对此进行科学的可用性研究
我还没听说过有人试图科学地衡量开发人员对此的看法
这就给我们留下了“随机的贡献者意见”,我不相信这些意见能在这方面指导我。(每个人在阅读代码时的心理过程都是不同的…)
一句话:没什么
根据实际情况,由您决定您认为哪个更具可读性/可维护性。但是:
- 我建议你在选择上保持一致
- 如果您的API可能被其他人使用/维护,最好与他们讨论。与同事达成共识将是一件好事,甚至是“同意不同意”,然后继续前进
但不要挂断,因为这肯定是个小问题。创建一个界面,并为所有内容提供一个默认值空正文。。。然后,您只需要重写应该执行任何操作的方法。这与性能无关,只与开发人员的效率有关。嵌套接口是静态的。没有“内部接口”这样的东西。创建一个接口并为所有内容提供一个默认值空主体。。。然后,您只需要重写应该执行任何操作的方法。这与性能无关,只与开发人员的效率有关。嵌套接口是静态的。没有所谓的“内部接口”。
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);
}
}
interface OnItemClickListener {
void onItemClick(int position);
void onDeleteClick(int position);
void onButtonClick(int position);
}
abstract class Adapter implements OnItemClickListener {
public void onItemClick(int position) {};
public void onDeleteClick(int position) {};
public void onButtonClick(int position) {};
}
public class A extends Adapter
{
@Override
public void onDeleteClick(int position) {
errase(position);
}
}