问题描述
在 Clean Code 书中他们说:
带有两个参数的函数比一元函数更难理解。例如,writeField(name) 比 writeField(output-Stream,name) 更容易理解。 虽然两者的意思很清楚,但第一个从眼中滑过,很容易沉积它的 意义。第二个需要短暂的停顿,直到我们学会忽略第一个参数。 当然,这最终会导致问题,因为我们永远不应该忽视任何 代码的一部分。我们忽略的部分是错误将隐藏的地方。
和
Dyads 不是邪恶的,您肯定必须编写它们。然而,你应该 意识到它们是有代价的,应该利用可能的机制 您可以将它们转换为 monad。例如,您可以使 writeField 方法是 outputStream 的成员,因此您可以说 outputStream。 写字段(名称)。 或者你可以让 outputStream 成为当前的成员变量 类,以便您不必通过它。或者,您可以提取一个新类,如 FieldWriter,它在其构造函数中采用 outputStream 并具有 write 方法。
在句子中:
你可以让 outputStream 成为当前的成员变量 类,这样你就不必通过它
据我所知当前类的成员变量是一个全局变量,这意味着他们以使用全局变量的代价将二元函数转换为一元函数,但使用全局变量是一个不好的做法。我的问题是在二元函数上使用全局变量是否值得?为什么?
编辑:成员变量是实例变量,不是全局变量
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)