微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用全局变量将二元函数转换为一元函数值得吗?

如何解决使用全局变量将二元函数转换为一元函数值得吗?

在 Clean Code 书中他们说:

带有两个参数的函数比一元函数更难理解。例如,writeField(name) 比 writeField(output-Stream,name) 更容易理解。 虽然两者的意思很清楚,但第一个从眼中滑过,很容易沉积它的 意义。第二个需要短暂的停顿,直到我们学会忽略第一个参数。 当然,这最终会导致问题,因为我们永远不应该忽视任何 代码的一部分。我们忽略的部分是错误将隐藏的地方。

Dyads 不是邪恶的,您肯定必须编写它们。然而,你应该 意识到它们是有代价的,应该利用可能的机制 您可以将它们转换为 monad。例如,您可以使 writeField 方法是 outputStream 的成员,因此您可以说 outputStream。 写字段(名称)。 或者你可以让 outputStream 成为当前的成员变量 类,以便您不必通过它。或者,您可以提取一个新类,如 FieldWriter,它在其构造函数中采用 outputStream 并具有 write 方法

在句子中:

你可以让 outputStream 成为当前的成员变量 类,这样你就不必通过它

据我所知当前类的成员变量一个全局变量,这意味着他们以使用全局变量的代价将二元函数转换为一元函数,但使用全局变量一个不好的做法。我的问题是在二元函数上使用全局变量是否值得?为什么?

编辑:成员变量是实例变量,不是全局变量

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?