这些术语涉及到不同领域,让我们来看看它们的含义:
- Niladic(零元):这个术语用于描述不带参数的方法。例如,Java 中的
toString()
方法就是一个典型的 niladic 方法。 - Monadic(一元):这表示一个方法带有一个参数。例如,Java 的基类
Object#equals(Object obj)
就是一个 monadic 方法。 - Dyadic(二元):这是指一个方法带有两个参数。例如,Java 中的字符串方法
replace(char oldChar, char newChar)
就是一个 dyadic 方法。 - Triadic(三元):这表示一个方法带有三个参数。例如,Java 中
StringBuffer
的replace
方法就是一个 triadic 方法,它的签名为replace(int start, int end, String str)
。
此外,还有一个术语叫做 Polyadic,用于描述带有超过三个参数的方法。例如,Java 中的字符串方法 regionMatches 就是一个 polyadic 方法,其参数顺序可能会让人感到困惑(除非查看文档)。它的签名如下:
regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
这些术语在不同编程语言和数学领域中都有应用,用于描述方法的参数数量和类型。虽然名字看起来有点奇怪,但它们有助于准确地描述方法的特性和行为。
Robert C. Martin 提出的干净代码原则:
- 函数应该做一件事。他们应该做得很好。他们应该只这样做。
- 如果函数只执行比该函数的指定名称低一级的那些步骤,则该函数正在执行一件事。
- 函数越小、越集中,就越容易选择描述性名称。
- 知道一个函数正在做的不仅仅是“一件事”, 换个说法就是,如果你可以从中提取另一个函数,其名称不仅仅是对其实现的重述。
- 述性名称比长段的描述性注释好。
- 函数的理想参数数为零(niladic)。接下来是一个(monadic),紧随其后的是两个(dyadic)。应尽可能避免三个参数(triadic)。超过三个(polyadic)需要非常特殊的理由 - 无论如何都不应该使用它们。
- 函数应该做某事或回答某事,但不能两者兼而有之。函数应该更改对象的状态,或者它应该返回有关该对象的一些信息。两者兼而有之往往会导致混乱。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。