面试题答案
一键面试类方法与单例模式的关联及原理
- 类方法:在Ruby中,类方法是定义在类本身而不是类的实例上的方法。可以通过类名直接调用这些方法,常用于执行与整个类相关的操作,而不是与特定实例相关的操作。
- 单例模式:单例模式确保一个类只有一个实例,并提供一个全局访问点来访问这个实例。在Ruby中,单例模式与类方法相关联,因为类方法可以作为访问单例实例的一种方式,同时也可以在类方法中实现与单例实例相关的特定功能。
- 关联原理:通过在类方法中控制实例的创建和访问,使得类始终只有一个实例。当需要访问单例实例的特定功能时,可以通过调用类方法来间接操作这个唯一的实例。
示例代码
class SingletonClass
# 类变量,用于存储单例实例
@@instance = nil
# 类方法,用于获取单例实例
def self.instance
@@instance ||= new
@@instance
end
# 类方法,单例实例的特定功能
def self.singleton_method
puts "This is a method of the singleton instance"
end
# 实例方法,仅供示例
def instance_method
puts "This is an instance method"
end
end
# 获取单例实例
singleton_obj = SingletonClass.instance
# 调用类方法(单例实例的特定功能)
SingletonClass.singleton_method
# 调用实例方法
singleton_obj.instance_method
在上述代码中,SingletonClass
类定义了一个instance
类方法来确保只有一个实例被创建。@@instance
类变量用于存储这个单例实例。singleton_method
类方法展示了如何定义与单例实例相关的特定功能。通过SingletonClass.instance
获取单例实例后,既可以调用类方法singleton_method
,也可以调用实例方法instance_method
。