İki parçalı bir sorum var
En iyi pratik
- Genel arabirimi kullanarak bir veri yapısı üzerinde bazı işlemler gerçekleştiren bir algoritmam var
- Şu anda, tek bir ortak arabirim yöntemi dışında tümü özel olan çok sayıda statik yönteme sahip bir modüldür.
- Tüm yöntemler arasında paylaşılması gereken bir örnek değişkeni vardır.
Bunlar görebildiğim seçenekler, en iyisi hangisi?
- Modül statik (Ruby 'modülünde') ile yöntemleri
- Statik yöntemlerle sınıf
- Veri yapısına dahil etmek için Mixin modülü
- Refactor algoritmanın bir parçası üzerinden bu değiştirir veri yapısı (çok küçük) ve marka bu algoritma modülünün statik yöntemleri çağıran bir mixin
Teknik bölüm
Özel Modül yöntemi yapmanın herhangi bir yolu var mı ?
module Thing
def self.pub; puts "Public method"; end
private
def self.priv; puts "Private method"; end
end
private
Orada herhangi bir etkisi görünmüyor hala çağırabilir, Thing.priv
sorun olmadan.
private
sınıf yöntemlerini değil, yalnızca örnek yöntemlerini etkiler. kullanmak private_class_method
yerine:module Thing; def self.pub; end; private_class_method :pub; end