un rubygem che sto scrivendo e che è utile per il conteggio occorrenze di parola in un testo, ho scelto di mettere 3 parametri in costruttore della classe.È accettabile avere parametri nel costruttore di classi?
Il codice funziona, ma voglio refactoring per gentilezza. Nella sua esperienza, è più facile da leggere/mantenere/uso di API una classe con un costruttore senza params e un sacco di setter metodo/getter o di un codice come questo, con tutti i params nel costruttore?
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
Un vantaggio di avere parametri nel costruttore almeno in altre lingue è che è possibile rendere il tipo immutabile. Non è possibile farlo se si imposta tutto separatamente. Non so se questo si applica a Ruby o no, ed è per questo che questo è un commento piuttosto che una risposta. –
@ Jon: http://stackoverflow.com/questions/408208/ruby-immutable-objects discute se è possibile fare oggetti immutabili in Ruby (che può essere diverso dal tipo immutabile) –