oop - 接口(interface)中的 void 方法是代码气味吗?

标签 oop interface void

我的意思是设计闻起来像时间耦合。
Void 方法在其签名中没有关于为什么以及何时应该调用它的情况的严格类型安全描述。因此,这仅取决于文档。使用它是基于对副作用正确性的信任。

那么我们应该尝试摆脱接口(interface)中的 void 方法吗?

最佳答案

无效方法是不是 设计气味。

面向对象(与函数式编程不同)允许副作用,例如更改调用该方法的对象的内部结构。这很正常。

好不好是另外一个问题。就表现力而言,函数式编程当然更强大。可以编写几乎不可能被误用的代码(当它编译时)。

此外, void 方法通常不会导致时间耦合。时间耦合意味着,必须在方法之前或之后调用另一个方法,否则方法调用没有意义。

当然你必须知道方法调用的语义,也就是它的含义。对于具有相同签名的函数,这是可以预料的,并且在函数式编程中也是如此。

关于oop - 接口(interface)中的 void 方法是代码气味吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46437400/

相关文章:

c# - 调用需要对象数组的方法

java - 对象递归调用彼此方法的示例

c++ - 我应该使用什么类型来定义接口(interface)中的缓冲区大小?

python - 看不到来自另一台设备的 UDP 多播消息

c - 如何打印树节点 void 指针指向的该结构的成员?

java - 'void' 方法什么时候影响参数,什么时候影响原始对象?

c++ - 派生自同一类但不共享公共(public)方法的两个对象的类设计

PHP 数据库类加载行函数 (OOP)

delphi - 接口(interface)和泛型

java - 我无法弄清楚为什么我的程序的一部分在继续执行下一个语句之前循环了 4 次