当前位置: 首页 > 面试题库 >

具有一个请求对象作为方法签名参数,该参数构成所有必需的参数

孔甫
2023-03-14
问题内容

方法签名是方法声明的一部分。它是方法名称和参数列表的组合。

因此,我只想传递构成所有参数的请求对象,而不是指定参数列表。并非所有方法都正确,但是想在任何可能的地方尝试。

举例来说

public void setMapReference(int xCoordinate, int yCoordinate)
{
  //method code
}

也可以写成

public void setMapReference(Point point)
{
  //method code
}
class Point {
  int xCoordinate;
  int yCoordinate;
  boolean isValidPoint();
}

但是由于他不知道参数,因此呼叫者可能会感到困惑。

这是一个好习惯吗???


问题答案:

我不会在“可能的地方”这样做-
但这通常是一个好主意,是的。基本上,请问问自己,参数本身是否构成一个连贯的单个实体:将它们组合在一起并将它们视为单个“事物”是否有意义?如果是这样,封装它们听起来是个好主意。如果存在某种明显的行为,而“事物”可能要负责,那就更好了,以避免该代码生活在已经承担其他职责的类中。

编辑:请注意,我 不会Point像您所示的 那样
让该类型具有程序包访问字段:我会像往常一样将它们设置为具有属性的私有字段。如果可能,我会尽量使其不可变。



 类似资料: