最好的构造函数是什么

问题描述 投票:0回答:2

考虑我们有两个类

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);
}
java oop constructor
2个回答
10
投票

绝对是第一个。它的层次更高,意图更清晰,更简洁,相对于 Point 类的更改更易于维护。


2
投票

我认为最好创建

Points
的实例,然后将其传递给构造函数,而不是让构造函数留下一点额外的工作。

所以,你应该选择第一个。这样,构造函数只需要使用传递的引用来初始化引用,而不是创建自身。

© www.soinside.com 2019 - 2024. All rights reserved.