我从未见过一种很好地做到这一点的方法,我很想看看其他人是如何做到的。目前我的格式是这样的:
public Booking createVehicleBooking(Long officeId,
Long start,
Long end,
String origin,
String destination,
String purpose,
String requirements,
Integer numberOfPassengers) throws ServiceException {
/*..Code..*/
}
像这样的大量参数通常(但不总是)表明您可以使用对象来表示参数集。在以下情况下尤其如此:
所以你上面的代码可能会变成(请原谅我的 C++,我是 Java 开发人员):
class BuildVehicleBooking {
Long officeId;
Long start;
Long end;
String origin;
String destination;
String purpose;
String requirements;
Integer numberOfPassengers;
Booking createVehicleBooking () throws ServiceException { ... }
}
这是 builder 模式。这种模式的优点是您可以在最终调用 create
方法结束。
另一个潜在的优势是您可以添加一个 verifyParameters
方法,该方法在您创建
最终对象之前检查它们的一致性。这适用于创建对象涉及不可逆步骤的情况,例如写入文件或数据库。
请注意,与所有模式一样,这并不适用于所有情况,也可能不适用于您的情况。如果您的代码足够简单,那么这种模式可能会过度设计它。如果代码变得杂乱无章,重构为这种模式可能是简化它的好方法。
我是一名优秀的程序员,十分优秀!