确定何时使用方法重载以及何时使用单独的“请求”类,最好的“经验法则”是什么?例如:
MakePancakes(int size)
MakePancakes(int size, bool addBlueBerries)
MakePancakes(int size, bool addBlueBerries, ...)
相反:
MakePancakes(PancakeOptions options)
最好是坚持一种方式,还是在“必要”时使用?关于何时或何地应该使用另一个?
答案 0 :(得分:2)
使用MakePancakes(PancakeOptions选项)的真正优势在于,您无需更改方法实现即可更改PacakeOptions的属性数。当参数的数量可以改变或是可选的时,它会很有用。以这种方式表示配置/属性/选项是有意义的。
但我认为它不能替代重载方法。
一些经验法则:
如果一个方法有超过5个参数,那么它可能不止一件事。我会检查该方法并尝试将其拆分为更具体的功能。
方法的所有属性都是必需的(即不能为空)
答案 1 :(得分:1)
在创建请求类型或枚举之前,我自己不需要很多重载(枚举数组似乎是一个非常简单的请求对象)。也许3-4?一些框架方法有9-10个重载,我觉得有点讨厌,但这更像是一个风格问题。