两个方法参数或一个新的 class.. for (X and Y cords)

Two method arguments or a new class.. for (X and Y cords)

在 Robert C. Martin 的书 'Clean Code' 中,他建议使用:

Circle makeCircle(Point center, double radius);

超过

Circle makeCircle(double x, double y, double radius);

他基本上认为制作 class 以避免使用多个方法参数是首选。

您对此有何看法?请向我解释两者的优点或缺点。

这有几个原因。

首先,它有助于有意义地对参数进行分组。在这个简单的例子中,很明显 x 和 y 在一起,但在处理更晦涩的例子时可能不会那么明显。

也许更重要的是,它减少了太多参数,无法进行有意义的跟踪;一旦你有一个方法接受超过 3 或 4 个参数,跟踪哪个参数是哪个就会变得越来越麻烦。在 class 或结构中将参数绑定在一起有助于避免这种情况。

考虑这个例子:

int HowManyMinutesToAirport(int AirportIdentifier, string AirportName, int PlainIdentifier, string PlainName, int PlaneSpeed, string PlaneCompassDirection);

对比

int HowManyMinutesToAirport(Airport airport, Plane plane);