头图

这些术语涉及到不同领域,让我们来看看它们的含义:

  • Niladic(零元):这个术语用于描述不带参数的方法。例如,Java 中的 toString() 方法就是一个典型的 niladic 方法。
  • Monadic(一元):这表示一个方法带有一个参数。例如,Java 的基类 Object#equals(Object obj) 就是一个 monadic 方法。
  • Dyadic(二元):这是指一个方法带有两个参数。例如,Java 中的字符串方法 replace(char oldChar, char newChar) 就是一个 dyadic 方法。
  • Triadic(三元):这表示一个方法带有三个参数。例如,Java 中 StringBufferreplace 方法就是一个 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 提出的干净代码原则:

  1. 函数应该做一件事。他们应该做得很好。他们应该只这样做。
  2. 如果函数只执行比该函数的指定名称低一级的那些步骤,则该函数正在执行一件事。
  3. 函数越小、越集中,就越容易选择描述性名称。
  4. 知道一个函数正在做的不仅仅是“一件事”, 换个说法就是,如果你可以从中提取另一个函数,其名称不仅仅是对其实现的重述。
  5. 述性名称比长段的描述性注释好。
  6. 函数的理想参数数为零(niladic)。接下来是一个(monadic),紧随其后的是两个(dyadic)。应尽可能避免三个参数(triadic)。超过三个(polyadic)需要非常特殊的理由 - 无论如何都不应该使用它们。
  7. 函数应该做某事或回答某事,但不能两者兼而有之。函数应该更改对象的状态,或者它应该返回有关该对象的一些信息。两者兼而有之往往会导致混乱。

Yujiaao
12.7k 声望4.7k 粉丝

[链接]