java - 如何格式化具有大参数列表的方法

我从未见过一种很好地做到这一点的方法,我很想看看其他人是如何做到的。目前我的格式是这样的:

public Booking createVehicleBooking(Long officeId, 
                                    Long start, 
                                    Long end,
                                    String origin, 
                                    String destination, 
                                    String purpose,         
                                    String requirements, 
                                    Integer numberOfPassengers) throws ServiceException {
/*..Code..*/
}

最佳答案

像这样的大量参数通常(但不总是)表明您可以使用对象来表示参数集。在以下情况下尤其如此:

  • 有几种方法具有相似的大参数集,可以用带参数对象的单个方法替换。

  • 方法名为create...

所以你上面的代码可能会变成(请原谅我的 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 方法,该方法在您创建最终对象之前检查它们的一致性。这适用于创建对象涉及不可逆步骤的情况,例如写入文件或数据库。

请注意,与所有模式一样,这并不适用于所有情况,也可能不适用于您的情况。如果您的代码足够简单,那么这种模式可能会过度设计它。如果代码变得杂乱无章,重构为这种模式可能是简化它的好方法。

https://stackoverflow.com/questions/189787/

相关文章:

r - 用适当的精度数字校正R中的“摘要”

python - 将文本列表格式化为列

ruby-on-rails - 在 Ruby 中将换行符解释为 markdown(Github Ma

objective-c - 将 [NSDate date] 的日期缩短几个小时

linux - 如何在 unix/linux 中显示 'ls -l' 命令的列标题?

c# - 在单个键盘快捷键中使用 R# 重新格式化代码

python - 打印十六进制值时如何让 Python 使用大写字母?

haskell - 如何让haskell输出不是科学计数法的数字?

r - 自动格式化 R 代码的工具

r - 在 R 绘图图例中添加 pch 符号