ruby设计默认-单例模式(一)
要点
? ? ? 显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。
? ? ? 从具体实现角度来说,就是以下三点:一是单例模式的类只提供私有的构造函数,二是类定义中含有一个该类的静态私有对象,三是该类提供了
简介? ? ? 单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问。使用工厂方法来限制实例化过程。这个方法应该是静态方法(类方法),因为让类的实例去生成另一个唯一实例毫无意义。
#其他的单例模式#(一)使用全局变量,尽量不要使用全局变量,因为全局变量是程序紧密的耦合在一起#其实单例模式和全局变量的作用是一样的,$logger = SimpleLogger.new#(二)使用类作为单例class SimpleLogger WARNING = 2 INFO = 3 @@log = File.open("log.txt", "w") @@level = WARNING def self.warning(msg) @@log.puts(msg) if @@level >= WARNING @@log.flush end def self.level @@level end endSimpleLogger.level = SimpleLogger::INFO
?