创建 BaseAdapter 的匿名实例有什么缺点吗?
are there any disadvantages to creating anonymous instances of BaseAdapter?
我从事的项目使用了很多不同类型的列表,所以我这样做了
BaseAdapter someAdapter = new BaseAdapter() {
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return null;
}
};
并在此处进行所有特定于列表的更改;这是不好的做法吗?我觉得每次都扩展一个新的适配器会使我的项目文件过于复杂,这有助于我更好地组织我的代码。这种方法有什么缺点,即可能出错/代码风格不好的地方吗?
如果这个问题是 broad/offtopic,我很抱歉。我看到其他一些问题询问一般的 adv./disadv。匿名 类,但没有具体内容。
如果不同的 BaseAdapters
都有不同的实现,那很好。
但是,如果您觉得许多匿名 BaseAdapters
重复相同(或相似)的代码,那么请选择命名实现,因为您可以重复使用它们(不要重复自己)。
与命名的 classes 相比,匿名 classes 几乎没有什么可以出错的地方。只有我个人经历过的事情:classes 的技术命名在封闭的 class 名称后附加了类似“$nnn”的内容。因此,不要保留这些 class 名称,期望它们即使在应用程序的版本更改后也能保持稳定。很可能在编辑您的 class 之后,您在下一次编译时会得到不同的“$nnn”后缀。
我从事的项目使用了很多不同类型的列表,所以我这样做了
BaseAdapter someAdapter = new BaseAdapter() {
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return null;
}
};
并在此处进行所有特定于列表的更改;这是不好的做法吗?我觉得每次都扩展一个新的适配器会使我的项目文件过于复杂,这有助于我更好地组织我的代码。这种方法有什么缺点,即可能出错/代码风格不好的地方吗?
如果这个问题是 broad/offtopic,我很抱歉。我看到其他一些问题询问一般的 adv./disadv。匿名 类,但没有具体内容。
如果不同的 BaseAdapters
都有不同的实现,那很好。
但是,如果您觉得许多匿名 BaseAdapters
重复相同(或相似)的代码,那么请选择命名实现,因为您可以重复使用它们(不要重复自己)。
与命名的 classes 相比,匿名 classes 几乎没有什么可以出错的地方。只有我个人经历过的事情:classes 的技术命名在封闭的 class 名称后附加了类似“$nnn”的内容。因此,不要保留这些 class 名称,期望它们即使在应用程序的版本更改后也能保持稳定。很可能在编辑您的 class 之后,您在下一次编译时会得到不同的“$nnn”后缀。