方法签名是方法声明的一部分。它是方法名和参数列表的组合。
所以我不想指定参数列表,而是想传递一个构成所有参数的请求对象。可能并非所有方法都适用,但希望尽可能尝试。
比如说
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
类型具有包访问字段,如您所示:我会让它们成为具有属性的私有(private)字段,像平常一样。如果可能的话,我会尽量让它不可变。
关于java - 有一个请求对象作为方法签名参数,它构成了所有需要的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3616894/