Saya punya pertanyaan dua bagian
Praktek terbaik
- Saya memiliki algoritme yang melakukan beberapa operasi pada struktur data menggunakan antarmuka publik
- Saat ini merupakan modul dengan berbagai metode statis, semuanya bersifat pribadi kecuali untuk satu metode antarmuka publik.
- Ada satu variabel contoh yang perlu dibagikan di antara semua metode.
Ini adalah opsi yang saya lihat, mana yang terbaik ?:
- Modul dengan metode statis ('modul' dalam ruby)
- Kelas dengan metode statis
- Modul mixin untuk dimasukkan ke dalam struktur data
- Refactor bagian dari algoritme yang memodifikasi struktur data tersebut (sangat kecil) dan buat campuran tersebut yang memanggil metode statis dari modul algoritme
Bagian teknis
Apakah ada cara untuk membuat metode Modul pribadi ?
module Thing
def self.pub; puts "Public method"; end
private
def self.priv; puts "Private method"; end
end
Di private
dalam tampaknya tidak berpengaruh apa-apa , saya masih bisa menelepon Thing.priv
tanpa masalah.
private
hanya mempengaruhi metode instance, bukan metode kelas. gunakan private_class_method
sebagai gantinya:module Thing; def self.pub; end; private_class_method :pub; end