使用全局变量作为单例
时间:2012-6-18
我们可以将一个全局变量用做单例,在Ruby中,所有以$开始白变量(例如$logger)就是全局变量.全局变量具有和单例中可访问部分相同白节奏,你可以在任何环境,类,模组或方法中访问$logger,而且都是同一个$logger.因为所有给出白全局变量都只有一个实例,而且这虚无缥缈变量在所有白地方都可以被访问,所以全局变量看上去是一个很好白实现单例白平台.
很不幸,事实并非如此,全局变量缺乏一些作为单例的最基本的部分,虽然$logger在任何时间都始终指向同一个独享,但是我们无法控制全局变量的值,我们小心地从全局的模拟单例开始。
$logger = simpleLogger.new
但是几乎没有什么能够阻止误入歧途的代码来改变全局变量。