【发布时间】:2016-04-20 19:28:57
【问题描述】:
Robert Martin 在他的“清洁代码”一书中指出,函数参数的理想数量为零。大多数人都会同意,太多的函数参数会导致很多问题。但据我所知,零参数的函数至少属于以下类别之一:
- 函数很简单,总是返回相同的值。
- 该函数缺乏引用透明性,其返回值取决于外部可变状态。
- 函数的目的是它的副作用。
现在类型 (1) 的函数并不是真正有用,而 (2) 和 (3) 应该避免使用,原因众所周知。
我知道我提到的书是关于 OOP 的,所以函数通常属于一个对象,并获取作为隐式参数传递的对象引用。但是,访问对象属性仍然意味着 (2) 或 (3)。
那么我错过了什么?
如果您回答这个问题,请不要仅仅表达您的意见,而是提供合理的论据或具体示例。否则它可能会被关闭。
【问题讨论】:
-
调用该方法的对象成为唯一的参数。
-
@IgnacioVazquez-Abrams:所以您会认为对象引用等同于参数,这意味着如果访问或修改(2)和(3)不适用?
-
甚至在某些情况下(例如,增量解析文档)(1)。
-
@IgnacioVazquez-Abrams 没有输入参数的静态方法怎么样?
-
@DStanley:IMO,静态方法是一种将程序主义强加到面向对象语言上的方法。
标签: oop functional-programming language-agnostic