# The singleton pattern is used to ensure that there is only one instance of a # class and provides global access to that instance. This pattern is useful when # you want one instance of a class and many different objects need to access it, # rather than pass the object around, we can make the object global. class Singleton def self.new @instance ||= super end end # Other example require 'singleton' class OtherSingleton include Singleton # OtherSingleton.new is not allowed end # Usage s1 = Singleton.new s2 = OtherSingleton.instance