Parameters 何时使用方法重载VS";“请求”;对象

Parameters 何时使用方法重载VS";“请求”;对象,parameters,methods,overloading,method-signature,Parameters,Methods,Overloading,Method Signature,确定何时使用方法重载以及何时使用单独的“请求”类的最佳“经验法则”是什么?例如: MakePancakes(int size) MakePancakes(int size, bool addBlueBerries) MakePancakes(int size, bool addBlueBerries, ...) 与之相反: MakePancakes(PancakeOptions options) 是坚持一种方式还是另一种方式最好,还是在“必要”时使用其中一种方式?在什么时候、什么地方应该使用

确定何时使用方法重载以及何时使用单独的“请求”类的最佳“经验法则”是什么?例如:

MakePancakes(int size)
MakePancakes(int size, bool addBlueBerries)
MakePancakes(int size, bool addBlueBerries, ...)
与之相反:

MakePancakes(PancakeOptions options)
是坚持一种方式还是另一种方式最好,还是在“必要”时使用其中一种方式?在什么时候、什么地方应该使用一种方法来代替另一种方法,这有什么意义吗


在创建请求类型或枚举(枚举数组似乎是一个非常简单的请求对象)之前,我自己不需要太多重载。也许3-4?一些框架方法有9-10个重载,我觉得这有点烦人,但我认为这更像是一个风格问题。

使用MakePancakes(PancakeOptions选项)的真正优势在于,您可以更改PacakeOptions的属性数量,而无需更改方法实现。当参数的数量可以更改或是可选的时,它会很有帮助。以这种方式表示配置/属性/选项是有意义的

但我不认为它可以替代重载方法

一些经验法则:

  • 如果一个方法有5个以上的参数,那么它可能会做不止一件事。我将回顾该方法,并尝试将其拆分为更具体的函数

  • 方法的所有属性都是必需的(即不能为null)