何时使用嵌套类

时间:2013-06-15 22:45:50

标签: java design-patterns nested-class

如果函数返回2个值,例如:数组中的min / max或者例如点的x和y轴,则需要创建一个对象,因为函数不能返回2个值。

现在,考虑一个客户端,其“唯一”功能是在返回的对象中使用getter并打印。 和 返回的对象说MinMax或Point对象只由一个类创建,

我们应该使用嵌套类(例如:MinMax,Point可以是嵌套类)还是使用顶级类?

这是一个通用的问题 - 下面只是一个与问题相关的例子。请完成与代码示例相关的答案,因为它是一个非常通用的问题,不受示例代码的约束。

Point类是否应该返回内部类,类似于arraylist返回的方式?

class Point {
    private final int x;
    private final int y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    int getX() {
        return x;
    }

    int getY() {
        return y;
    }
}

public class IntersectionOf2Lines {

    public static Point calculateIntersection(Line line1, Line line2) {
        int x = (line2.getConstant() - line1.getConstant()) / (line1.getSlope() - line2.getSlope());
        int y = line1.getSlope() * x + line1.getConstant();

        return new Point(x, y);
    }


 Line line3 = new Line(2, 2);
         Line line4 = new Line(3, 2);

         Point p1 = IntersectionOf2Lines.calculateIntersection(line3, line4);
         System.out.println("Expected: x = 0, Actual x = " + p1.getX() + " Expected y=2, Actual y = " + p1.getY()); 

1 个答案:

答案 0 :(得分:2)

恕我直言,这是一个风格问题。我会从第一次阅读您的代码的人的角度来看待它。您希望哪些课程显而易见,哪些课程要分组,他们只需在阅读详细信息时阅读。

顺便说一句:嵌套类需要嵌套在另一个类的范围内,而不仅仅是在你的例子中的同一个类文件中。