【问题标题】:How to name methods where one takes a single object as input and one takes multiple? [closed]如何命名一个以单个对象作为输入而一个以多个对象为输入的方法? [关闭]
【发布时间】:2015-06-08 13:28:06
【问题描述】:

我的班级有两种方法:

public String widgetToHtml(Widget widget){...}

public String widgetsToHtml(List <Widget> widgets){
    for(Widget widget : widgets){
        widgetToHtml(widget);
    }
}

这些方法应该如何命名?

  • 它们可以被命名为相同的东西,并且被重载
  • 它们的命名可能略有不同,一个是“widget s To Html”,另一个是“widget To Html”。
    • 它们也可以命名为singleWidgetToHtmlmultipleWidgetToHtml

跟进问题:

  • 如果处理单个小部件的方法是私有的,会有什么不同吗?

编辑Crossposted here

【问题讨论】:

  • 我要么重载它,要么使用可变参数(尽管可变参数会使生活变得非常棘手),但这只是个人意见。如果您想强制至少传递一个参数,请执行public String widgetToHtml( Widget first, Widget... rest)
  • 一般情况下所有变体都适用,重点是遵循java方法命名约定。恕我直言,我选择重载。
  • 请不要cross-post
  • 第二个选择更有意义。
  • 我不是 var args 的粉丝,我会使用 widgetsToHtml 复数命名。采用列表的单数函数名称似乎有点奇怪。

标签: java naming


【解决方案1】:

如果我是你,我只会命名方法

public String toHTML(...)

并重载方法。在方法名称中指定参数类型没有任何附加价值。

实用程序类会持有这些方法吗?

【讨论】:

  • 这是一个很棒的答案。正是我想要的。谢谢。
【解决方案2】:

varrags 允许该方法接受零个或多个参数。在可变参数之前,我们要么使用重载方法,要么将数组作为方法参数,但这并不被认为是好的,因为它会导致维护问题。如果我们不知道必须在方法中传递多少个参数,可变参数是更好的方法。

public String widgetToHtml(Widget... widget)
 {...}

【讨论】:

  • 但是现在你的方法名是单数但可能需要多个参数。
猜你喜欢
  • 2021-10-30
  • 2015-10-09
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 2020-06-30
  • 1970-01-01
  • 2019-08-21
  • 1970-01-01
相关资源
最近更新 更多