18、单例模式与工厂模式的深入剖析

单例模式与工厂模式的深入剖析

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值