C++ practise hint 2
2017-05-12 本文已影响13人
ahuangliang
不要使用全局变量。
全局变量的可怕之处在于,无论读或写,它都不可信赖。因为你不知道是否有哪个程序做了不该做的修改,或者忘记做了应该做的修改。那怕当前的测试结果正确,也不能保证这是特性,还是bug。
不要使用超大可访问性,且状态可变的对象,比如有状态的单例对象。
程序不是一个不可分割的整体,它由一些自治的模块共同组成一个联邦,当有一个模块去关系另一个模块的状态时,它们的行为就难以预测。
单例对象,应只相当于一个入口,它的功能就是提供一个全局可访问的入口,而不是提供功能或者提供可查询的状态。
可以例外的情况,包括内存管理,日志,配置,错误处理等,每个模块都应该有功能,它们可以共享相同的对象。因为这些功能明确,不会也不应该有出人意料的影响。