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"

Porque lo podés hacer de otras maneras.

De lo que recuerdo de mis tiempos en Java, en la amplia mayoría de los
casos en la clase abstracta tenés un método con el comportamiento por
defecto. Para esos casos en los que no hay un comportamiento por
defecto que tenga sentido, podés hacer:

class ForceImplementation
  def forced_method
    raise "please implement this method"
  end
end

Lo de forzar a que la clase no pueda ser instanciada no es algo que
tenga mucho sentido, en mi opinión — si la clase requiere que le
implementes ciertos métodos, va a explotar de todas formas, y si no lo
requiere, entonces cuál es el problema de dejar que se pueda
instanciar con la implementación por defecto?

El tema es que no podés traducir directamente conceptos de Java a
Ruby. Son lenguajes diferentes. Por ejemplo lo que hablás en otro mail
de las interfaces. Tiene sentido en Java que existan interfaces porque
cada variable tiene que tener un tipo de datos determinado y se
determina al compilar si la llamada es correcta o no. En Ruby no tiene
sentido — si querés saber si ese objeto responde a un método
determinado, se lo preguntás y chau.

>
> Saludos!
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>



-- 
Nacho Facello
:wq
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a