Java 委譲のサンプル

Javaの委譲のサンプルです。

目次

委譲

  • メソッドを実行するとき、他のクラスのメソッドを利用します。
    →メソッドの処理を委譲(ゆだねる、ゆずる)します。
  • 他のクラスのメソッドを使用するので、同じメソッドを実装しなくてよくなります。
    →再利用するイメージです。
  • 委譲は、英語ではdelegationです。

委譲のサンプルのコード

委譲のサンプルのコードです。
説明用として3つのクラスがあります。

1.処理を記述したクラス

1つめは、処理を記述したクラスです。

package test1;

public class Color1 {
    
    public void method1() {
        System.out.println("赤です");
    }
}

6行目のメソッドを実行すると文字列を出力します。

2.委譲しているクラス

2つめは、委譲しているクラスです。

package test1;

public class  Color2 {

    Color1 c = new Color1();
    
    public void method1() {
        c.method1();
    }
}

5行目は、上記のColor1クラスのインスタンスを生成しています。
7行目のmethod1メソッドは、Color2クラスのメソッドですが、実態は8行目でColor1クラスのメソッドを実行しています。これが委譲です。→Color2クラスのメソッドの処理をColor1クラスのメソッドの処理に委譲(ゆだねる、ゆずる)しています。
5行目の書き方で委譲先を記述しています。そのため委譲先の変更も容易です。

3.処理を実行しているクラス

3つめは、処理を実行しているクラスです。

package test1;

public class Test1 {
    public static void main(String[] args) {        

        Color2 c2 = new Color2();
        
        c2.method1(); //赤です
    }
}

6行目は、Colo2クラスのインスタンスを生成します。
8行目は、Color2クラスのメソッドを実行しますが、Color1クラスのメソッドの結果が表示されます。

 

Eclipseで委譲メソッドを生成する

Eclipseで委譲メソッドを生成することができます。

1.上記コード「2.委譲しているクラス」の5行目の変数cで右クリックします。
※7~9行目は削除します。

 

2.ダイアログで「ソース」→「委譲メソッドの生成」をクリックします。

 

3.Cの変数に対する委譲メソッドの候補が表示されます。
method1()にチェックを入れて「生成」をクリックすると上記コード「2.委譲しているクラス」と同じコードになります。

関連の記事

Java クラスの仕組みと使い方のサンプル
Java コンストラクタのサンプル
Java クラスの継承のサンプル
Java 匿名クラスのサンプル
Java ネストしたクラスのサンプル
Java クラスの変数の用語のサンプルとまとめ(メンバー変数他)
Java 参照型の変数を型変換するサンプル
Java インスタンスの型を調べるサンプル(instanceof)
Java クラスのthisのサンプル
Java インターフェースのサンプル(interface)
Java 抽象クラスと抽象メソッドのサンプル(abstract)
Java シングルトンのサンプル
Java ポリモフィズムのサンプル
Java staticメソッドとstatic変数のサンプル

△上に戻る