un rubygem que estoy escribiendo y que es útil para contar las ocurrencias de palabras en un texto, elijo poner 3 parámetros en el constructor de la clase.¿Es aceptable tener un parámetro en el constructor de clase?
El código está funcionando, pero quiero refactorizarlo para que sea agradable. En su experiencia, es más fácil leer/mantener/usar como API una clase con un constructor sin params y muchos métodos setters/getters o un código como este, con todos los parámetros en el constructor.
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
Una ventaja de tener parámetros en el constructor en otros idiomas, al menos, es que puede hacer que el tipo sea inmutable. No puede hacer eso si configura todo por separado. No sé si eso se aplica a Ruby o no, por lo que este es un comentario en lugar de una respuesta. –
@Jon: http://stackoverflow.com/questions/408208/ruby-immutable-objects analiza si puede hacer objetos inmutables en ruby (que pueden ser diferentes del tipo inmutable) –