Wenn Sie sich das obige Beispiel anschauen, das sich auf die Widget-Klasse (unten) bezieht, verstoßen die Methoden send und instance_eval gegen alle Schutzmechanismen, die von privater und geschützter Sichtbarkeit bereitgestellt werden. Wenn ja, warum sollten Sie sich überhaupt mit dem privaten und geschützten Zugriff in Ruby beschäftigen, da es keine Garantie dafür gibt, dass Ihre Definitionen eingehalten werden?Beeinträchtigen die Ruby-Methoden instance_eval() und send() nicht die Vorteile der privaten Sichtbarkeit?
class Widget
def x # Accessor method for @x
@x
end
protected :x # Make it protected
def utility_method # Define a method
nil
end
private :utility_method # And make it private
end
Ähnliche Fragen: http://stackoverflow.com/questions/2519136/why-can-i-access-private-protected-methods-using-objectsend-in-ruby –