yazıyorum bir rubygem ve bu bir metinde sözcük olaylar sayarak için yararlıdır, ben sınıf yapıcısı 3 parametre koymak seçin.Sınıf kurucusunda parametreye sahip kabul edilebilir mi?
kodunun çalıştığını, ancak hoşluk için refactor istiyorum. Tecrübelerinize göre , bu yapıcı tüm parametreleri içeren, okuma/hayır parametreleri içeren bir yapıcı ve ayarlayıcılar/alıcıları yöntemin bir sürü veya buna benzer bir kod ile API kullanacağım/a sınıfını mantain daha kolaydır?
TIA
Paolo
def initialize(filename, words, hide_list)
if ! filename.nil?
@filename = filename
@occurrences = read
else
@filename = STDIN
@occurrences = feed
end
@hide_list = hide_list
@sorted = Array(occurrences).sort { |one, two| -(one[1] <=> two[1]) }
@words = words
end
Kurucularda en az diğer dillerdeki parametrelere sahip olmanın bir yararı, türü değişmez yapabilmenizdir. Her şeyi ayrı ayrı kurarsan bunu yapamazsın. Bunun Ruby için geçerli olup olmadığını bilmiyorum, bu bir cevaptan ziyade bir yorumdur. –
@Jon: http://stackoverflow.com/questions/408208/ruby-immutable-objects, ruby'de değişmez nesneler yapıp yapamayacağınızı (değişmez tipten farklı olabilir) tartışır –