考虑我们有两个类
Line
和Point
,哪个类Line
使用类Point
,如下所示:
public class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
和
public Class Line
{
private Point start;
private Point end;
...
}
我想知道由于 OOP 原则,下面哪个构造函数更适合类
Line
?
public Line(Point start, Point end)
{
this.start = start;
this.end = end;
}
或
public Line(int startX, int startY, int endX, int endY)
{
start = new Point(startX, startY);
end = new Point(endX, endY);
}
绝对是第一个。它的层次更高,意图更清晰,更简洁,相对于 Point 类的更改更易于维护。
我认为最好创建
Points
的实例,然后将其传递给构造函数,而不是让构造函数留下一点额外的工作。
所以,你应该选择第一个。这样,构造函数只需要使用传递的引用来初始化引用,而不是创建自身。