gpt4 book ai didi

java - 修剪方法输入 String 参数是一种不好的做法吗?

转载 作者:行者123 更新时间:2023-12-01 19:34:15 29 4
gpt4 key购买 nike

我自己在争论修剪方法的输入字符串参数是否是一个不好的做法?我个人不喜欢修改输入参数,但想知道修剪是否可以?

我编写了如下代码

private Order retrieveOrderDetails(String productId, String cardNumber, Date purchaseDate) {
validateInputs(trim(productId), trim(cardNumber), purchaseDate);

List<Order> orders = pullOrdersByCardNumber(trim(cardNumber));

return retrieveOrderDetails(orders, trim(productId), purchaseDate);
}

不要在多个地方使用trim(),而是可以执行如下所示的操作吗?

private Order retrieveOrderDetails(String productId, String cardNumber, Date purchaseDate) {
productId = trim(productId);
cardNumber = trim(cardNumber);

validateInputs(productId, cardNumber, purchaseDate);

List<Order> orders = pullOrdersByCardNumber(cardNumber);

return retrieveOrderDetails(orders, productId, purchaseDate);
}

最佳答案

当字符串到达​​ retrieveOrderDetails() 时,它们应该已经被修剪

需要修剪字符串意味着它们来自用户输入:表单字段、配置文件等。修剪用户输入中的空格是用户界面代码或文件读取代码的工作。您不应该混合抽象层,在同一个函数中处理 UI 和业务逻辑。

不要修剪这里的字符串,也不要检查它们是否被修剪。完全不用担心修剪的问题。这是调用者的问题,而不是这个函数的问题。

如果你想要真正纯粹,你甚至可以用特定于域的类替换字符串。您已经拥有 Date buyDate 而不是 String buyDate。对其他两个参数执行相同的操作。然后修剪所属的地方就变得清晰了:不在这里。

Order retrieveOrderDetails(ProductId productId, CardNumber cardNumber, Date purchaseDate) {
...
}

关于java - 修剪方法输入 String 参数是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58423405/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com