假设一个类需要加载一个外部库,这需要一些时间来加载,因此只应加载一次.对此的两个自然解决方案是使用单例模式或单稳态模式.在
Ruby的特定上下文中,这些解决方案中是否有任何优势?
例如:
# Using a Singleton class require 'singleton' class Parser include Singleton def initialize @parser = load_external_library end def parse(sentence) @parser.parse(sentence) end end # Then calling using... Parser.instance.parse(sentence)
与:
# Using a Monostate class class Parser def self.parse(sentence) @@parser ||= load_external_library @@parser.parse(sentence) end end # Then calling using... Parser.parse(sentence)
由于第二种语法更清晰,在Ruby中使用Singleton有什么好处吗?