requires=
classes=Delegator,SimpleDelegator
methods=Kernel/i.DelegateClass.delegate
sublibraries=
is_sublibrary=false
category=DesignPattern

メソッドの委譲 (delegation) を行うためのライブラリです。

[[c:Delegator]] クラスは指定したオブジェクトにメソッドの実行を委譲します。
[[c:Delegator]] クラスを利用する場合はこれを継承して
[[m:Delegator#__getobj__]] メソッドを再定義して委譲先のオブジェクトを指定します。


[[c:SimpleDelegator]] は [[c:Delegator]] の利用例の一つであり、
コンストラクタに渡されたオブジェクトにメソッドの実行を委譲します。


[[m:Kernel#DelegateClass]] は 引数で渡されたクラスのインスタンスをひとつとり、
そのオブジェクトにインスタンスメソッドを委譲するクラスを定義して返します。

=== 参考

  * Rubyist Magazine - 標準添付ライブラリ紹介【第 6 回】委譲 [[url:http://magazine.rubyist.net/?0012-BundledLibraries]]
