【发布时间】:2010-05-24 15:04:51
【问题描述】:
当我在大学上第一门编程课程时,我们被告知全局变量是邪恶的,应该不惜一切代价避免使用(因为您可以快速开发出令人困惑且无法维护的代码)。第二年,我们学习了面向对象编程,以及如何使用类创建模块化代码。
我发现每当我使用 OOP 时,我都会使用我的类的私有变量作为全局变量,即,它们可以(并且正在)被类中的任何函数读取和修改。这并不适合我,因为它似乎引入了全局变量在 C 等语言中存在的相同问题。
所以我想我的问题是,如何停止使用“全局”变量编写类?假装我在用函数式语言写作会更有意义吗?我的意思是让所有函数都接受参数和返回值,而不是直接修改类变量。如果我需要设置任何字段,我可以只获取函数的输出并分配它,而不是让函数直接执行。这似乎可以使代码更易于维护,至少对于较大的类。常见的做法是什么?
【问题讨论】:
-
"让所有函数都接受参数和返回值,而不是直接修改类变量。如果我需要设置任何字段,我可以只获取函数的输出并分配它,而不是让函数执行直接吧。”这就是我被教导如何有效地编码,作为可重用性、可读性(假设您的函数名称反映函数的功能)、良好结构和易于修改的来源。
标签: oop global-variables