簡體   English   中英

Ruby Singleton,模塊與類

[英]Ruby Singleton, module vs class

我希望在ruby vs class和vs module中得到不同的實現單例模式。我只是討論單例類和單例方法而沒有實例。 至於我,使用是合乎邏輯的

module Foo
  def self.foo= other
    @@foo=other
  end
  def self.foo
    @@foo
  end
end

但是我經常在別人看到代碼class Foo;....;end和我想了解為什么?如果沒有實例且沒有子類Module更方便。 或者我可能會錯過什么?

問題是單例模式實現中模塊和類之間的差異是什么?

在Ruby中獲取對象的最簡單方法是使用一個對象:

class << Foo = Object.new
  attr_accessor :foo
end

使用模塊或類是過度殺傷,兩者都具有您不需要的功能。

單例是對象,其類確保僅實例化一次,並且所有客戶端共享相同的實例。

Ruby的Singleton模塊有助於以方便的方式實現這一目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM