class Delegator

Diese Bibliothek bietet drei verschiedene Möglichkeiten, Methodenaufrufe an ein Objekt zu delegieren. Am einfachsten zu verwenden ist SimpleDelegator. Übergeben Sie ein Objekt an den Konstruktor und alle vom Objekt unterstützten Methoden werden delegiert. Dieses Objekt kann später geändert werden.

Einen Schritt weiter geht die übergeordnete Methode DelegateClass, mit der Sie die Delegation durch Klassenerbschaft einfach einrichten können. Dies ist erheblich flexibler und wahrscheinlich die häufigste Verwendung für diese Bibliothek.

Schließlich können Sie, wenn Sie die volle Kontrolle über das Delegationsschema benötigen, von der abstrakten Klasse Delegator erben und nach Bedarf anpassen. (Wenn Sie diese Kontrolle benötigen, werfen Sie einen Blick auf Forwardable, das sich ebenfalls in der Standardbibliothek befindet. Es kann Ihren Anforderungen besser entsprechen.)

Die Implementierung von SimpleDelegator dient als schönes Beispiel für die Verwendung von Delegator

require 'delegate'

class SimpleDelegator < Delegator
  def __getobj__
    @delegate_sd_obj # return object we are delegating to, required
  end

  def __setobj__(obj)
    @delegate_sd_obj = obj # change delegation object,
                           # a feature we're providing
  end
end

Hinweise

Seien Sie sich bewusst, dass RDoc keine delegierten Methoden erkennt.