如果我有两个类Thing
和ThingAdapter
,其中ThingAdapter
仅在类Thing
中使用,则在将ThingAdapter
定义为Thing
的静态内部类与一个包范围类?
我正在看的场景使用ThingAdapter
有点像
public class Thing {
private ThingAdapter thingAdapter;
public doStuff() {
thingAdapter = new ThingAdapter();
}
}
并且
ThingAdapter
可以像public class Thing {
// stuff
private static class ThingAdapter {
// adapter stuff
}
}
与
public class Thing {
// stuff
}
/* package */ class ThingAdapter {
// adapter stuff
}
我目前正在使用的环境是Android,但我还没有看到两者之间的性能差异,尽管没有实际对其进行基准测试。另外,Dalvik和JVM是否会对此有所不同?
最佳答案
没有明显的性能差异。在这种情况下,班级设计不应影响性能。一个好的方法是编写对开发人员尽可能清晰的代码,然后对其进行概要分析以查找瓶颈(如果需要),然后仅优化受影响的代码。