SORU
25 Kasım 2008, Salı


Ruby özel modül yöntemleri

İki parçası bir sorum var

En İyi Uygulama

  • Veri yapısı ortak arabirim kullanarak belirli bir işlemi yapan bir algoritma var
  • Şu anda çok sayıda statik yöntemler, bir ortak arabirim yöntemi dışındaki tüm özel bir modül.
  • Tüm yöntemler arasında paylaşılması gereken bir örnek değişken var.

Bunlar, hangisi daha iyi? benim gördüğüm seçenekler:

  • Modülstatik ('' ruby) yöntemleri modülü
  • Sınıfstatik yöntemler ile
  • Kendisine dahil ederseveri yapısı içine dahil edilmesi için modül
  • Yeniden Düzenlealgoritma kısmı bu veri yapısı (çok küçük) değiştirir ve bu algoritma modülünün statik yöntem çağrıları, kendisine dahil ederse

Teknik kısmı

Yapmak için herhangi bir yolu varözel Modül yöntemi?

module Thing
  def self.pub; puts "Public method"; end
  private
  def self.priv; puts "Private method"; end
end

Orada private herhangi bir etkisi görünmüyorHala sorun olmadan Thing.priv arayabilirim.

CEVAP
8 Ocak 2009, PERŞEMBE


Bence en iyi yolu (ve çoğunlukla varolan libs yazılmış) bunu yaparak sınıf içinde modül fırsatlar ile tüm mantığı ve modülü sadece sağlar kullanışlı bir yöntem, örneğin

module GTranslate
  class Translator
    def perform( text ); 'hola munda'; end
  end

  def self.translate( text )
    t = Translator.new
    t.perform( text )
  end
end

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • jcortes187

    jcortes187

    24 Mart 2006
  • kalabrandmusic

    kalabrandmus

    25 Kasım 2009