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
