Joe*_*oel 13 oop global-variables
当我在大学学习第一门编程课程时,我们被告知全局变量是邪恶的,应该不惜一切代价避免(因为你可以快速开发出令人困惑和不可维护的代码).第二年,我们学习了面向对象的编程,以及如何使用类创建模块化代码.
我发现每当我使用OOP时,我都会使用类的私有变量作为全局变量,即它们可以(并且)被类中的任何函数读取和修改.这并不是真正与我坐在一起,因为它似乎引入了全球变量在C等语言中遇到的相同问题.
所以我想我的问题是,如何停止用"全局"变量编写类?假装我用函数式语言写作会更有意义吗?我的意思是让所有函数都使用参数和返回值,而不是直接修改类变量.如果我需要设置任何字段,我可以只取功能的输出并分配它而不是让函数直接执行.这似乎可以使更多可维护的代码,至少对于更大的类.什么是常见做法?
Han*_*son 11
我同意类成员变量有时会在某些方面感觉像全局变量.我发现重要的是保持类很小,然后每个变量只能从有限的几个地方访问.如果您只有几个庞大的类,则成员变量和全局变量之间的差异有时会受到限制.
传递太多参数有时也是一个问题,如果你急于避免所有成员变量,你可能很容易得到太多的参数,使代码难以遵循.