如果我有两个类ThingThingAdapter,其中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是否会对此有所不同?

最佳答案

没有明显的性能差异。在这种情况下,班级设计不应影响性能。一个好的方法是编写对开发人员尽可能清晰的代码,然后对其进行概要分析以查找瓶颈(如果需要),然后仅优化受影响的代码。

09-25 20:25