Javaの委譲のサンプルです。
目次
委譲
- メソッドを実行するとき、他のクラスのメソッドを利用します。
→メソッドの処理を委譲(ゆだねる、ゆずる)します。 - 他のクラスのメソッドを使用するので、同じメソッドを実装しなくてよくなります。
→再利用するイメージです。 - 委譲は、英語ではdelegationです。
委譲のサンプルのコード
委譲のサンプルのコードです。
説明用として3つのクラスがあります。
1.処理を実行しているクラス
処理を実行しているクラスです。
package test1;
public class Test1 {
public static void main(String[] args) {
Color1 c1 = new Color1();
c1.method1(); //赤です
}
}
6行目でColor1クラスのインスタンスを生成し、8行目でColor1クラスのメソッドを実行します。
2.委譲しているクラス
委譲しているクラスです。
package test1;
public class Color1 {
Color2 c = new Color2();
public void method1() {
c.method1();
}
}
5行目は、Color2クラスのインスタンスを生成しています。
7行目のmethod1メソッドは、Color1クラスのメソッドですが、実態は8行目でColor2クラスのメソッドを実行しています。これが委譲です。→Color1クラスのメソッドの処理をColor2クラスのメソッドの処理に委譲(ゆだねる、ゆずる)しています。
5行目の書き方で委譲先を記述しています。そのため委譲先の変更も容易です。
3.実際の処理を記述したクラス
実際の処理を記述したクラスです。
package test1;
public class Color2 {
public void method1() {
System.out.println("赤です");
}
}
6行目は、文字列を出力しています。
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変数のサンプル