【发布时间】:2010-08-26 16:05:23
【问题描述】:
我想问一下使用匿名类与命名内部类的良好做法是什么?
我正在编写一个 Android 应用程序,其中包含许多 UI 元素(按钮、文本字段等)。对于他们中的许多人,我需要某种监听器,所以在应用程序的onCreate 中,我有一堆非常小的匿名类,例如:
someButton.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
// do something...
}
}
);
每个这样的匿名类都有 5 到 20 行大 - 足够小,非常适合 Java™ in a Nutshell 书中的推荐:
一般来说,如果出现以下情况,您应该考虑使用匿名类而不是本地类:
- 类的主体很短。
- 只需要一个类的实例。
- 类在定义后立即使用。
- 类的名称不会使您的代码更容易理解。
但问题是,IMO,onCreate 变得相当大,并且通过快速查看代码变得更复杂,难以阅读和理解。它仍然很容易理解,但是太大了。
那么在这种情况下有什么更好的做法 - 有一堆小的内部子类,每个子类都很好地分开,但只使用一次或更好地继续使用匿名类?
【问题讨论】:
-
我的经验:继续使用匿名类,但尝试将部分代码移动到一个(或多个)私有方法并从 onCreate 方法调用它(它们)。
标签: java android subclass anonymous-class