全局对象的可视性使其成为程序各部分之间进行通信的一种方便的机制但函数之间依靠全局对象的通信有下列缺点
- 使用全局对象的函数依赖于全局对象的存在和类型这使得在不同上下文环境中重用该函数更加困难
- 如果程序必须被修改则全局依赖增加了引入错误的可能性而且既使只对局部做修改也要求程序员必须理解整个程序
- 如果全局对象得到一个不正确的值则必须查找整个程序以判断错误发生的位置也就是没有实现局部化
- 当一个函数使用全局对象时递归更加难以正确完成.
- 在线程存在的情况下我们必须做特殊的编码以便同步各个线程对于全局对象的读和写操作当我们在使用线程时缺少同步是程序错误的常见根源.
因此建议程序中的函数使用参数表和返回值进行通信.