2010/5/3 Cristhian Boujon <[email protected]>

> Maximiliano,
>
> Gracias por el link! lo había visitado antes, pero por lo que veo ahí, no
> puedo forzar a que se implemente un método de la clase padre y las
> soluciones me parecen un tanto "sucias" y/o rebuscadas.
>
> Además, me interesa saber por que es que algunos dicen que "no tiene
> sentido"
>
> Saludos!
>
>
Es que en el 'zen' de ruby, el poder lo tiene el usuario y lo que vos querés
que los otros hagan con tu clase termina siendo mas una sugerencia que un
contrato estricto. Quien usa tu clase, al igual que vos, tiene la voluntad
de que todo funcione bien, por eso va a aceptar todas tus sugerencias en la
medida en que apliquen. private y protected son maneras de formalizar esa
sugerencia, asi como lo es hacer un método y que levante una excepcion
diciendo 'este método tenés que redefinirlo si vas a usar tal o cual
funcionalidad'. Quizás alguien preferiria un chequeo de que los métodos
esten definidos al momento de 'compilar' la clase nueva, pero seria bastante
difícil garantizar eso dada la naturaleza de ruby (si soy guacho puedo
modificar la clase at runtime y saltearme el chequeo). Por eso es aceptable
que te enterés que tenias que redefinir tal o cual método recién al momento
de llamarlo.
En general desarrollando en ruby, hasta llegar a la solución final uno tiene
la libertad de facilmente ir cambiando la responsabilidad de cada clase, y
podria decirse que uno nunca sabe con certeza haber llegado a la solución
final porque siempre hay algo que podria hacerse o mejorarse, entonces ruby
está preparado para que las responsabilidades siempre puedan moverse
libremente de un lado a otro sin requerir una reunión del directorio de la
empresa :)

No sé si tu pregunta venia por ese lado o terminé escribiendo la respuesta
que queria escribir :P

saludos
----nubis :)
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a