我的意思是设计闻起来像时间耦合。
Void 方法在其签名中没有关于为什么以及何时应该调用它的情况的严格类型安全描述。因此,这仅取决于文档。使用它是基于对副作用正确性的信任。
那么我们应该尝试摆脱接口(interface)中的 void 方法吗?
最佳答案
无效方法是不是 设计气味。
面向对象(与函数式编程不同)允许副作用,例如更改调用该方法的对象的内部结构。这很正常。
好不好是另外一个问题。就表现力而言,函数式编程当然更强大。可以编写几乎不可能被误用的代码(当它编译时)。
此外, void 方法通常不会导致时间耦合。时间耦合意味着,必须在方法之前或之后调用另一个方法,否则方法调用没有意义。
当然你必须知道方法调用的语义,也就是它的含义。对于具有相同签名的函数,这是可以预料的,并且在函数式编程中也是如此。
关于oop - 接口(interface)中的 void 方法是代码气味吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46437400/