【しばらく編集不可モードで運営します】 編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴

委譲 - Delegation

目次

Delegation

委譲

    class Printer {
        Writer writer;
        void print(String s) {
            writer.write(s);
        }
        ...
    }

    class Writer {
        void write(String s) {
            ...
        }
    }

Printerクラスは、 printメソッドの呼び出しを、 自分が持っているWriterクラスのインスタンスのwriteメソッドの呼び出しによって実現している。 Printerが行うべき処理をWriterに「委譲」している。

継承との差別化

not yet

継承はそのインスタンスのなかの変数を使用するのに対し、委譲では委譲先のインスタンスの中の変数を使用する。(この説明は単に動作の違いを言っているだけかな。)

継承はインスタンスの振る舞い方を規定し、委譲はインスタンスの実装となる。

インスタンスの振る舞い方が変わると、そのインスタンスを利用するほうにも影響が出る。

インスタンスの実装は、使われ方で変わるが、利用するほうには影響が出にくい。

関連ページ