单例模式与工厂模式的深入剖析
1. 单例模式的安全性与局限性
在 Ruby 中实现单例模式时,会涉及到语言层面的安全特性。例如,包含 Singleton 模块会使 new 方法变为私有,从而阻止创建单例类的多个实例。以下是一个简单的单例类示例:
require 'singleton'
class Manager
include Singleton
def manage_resources
puts("I am managing my resources")
end
end
若尝试创建 Manager 的新实例:
m = Manager.new
会得到错误信息:
private method 'new' called for Manager:Class
然而, Singleton 模块并不能真正阻止所有情况。只需了解其工作原理,并使用 public_class_method 方法,就能绕过这种限制:
class Manager
public_class_method :new
end
m = Manager.new
超级会员免费看
订阅专栏 解锁全文
782

被折叠的 条评论
为什么被折叠?



