オブジェクトを順次よび出す
以下のクラス構成で確認します
クラス | 説明 |
---|---|
abstract chain.class |
chain機能を定義 フィールド next は次のオブジェクトインスタンスを格納 set():次のオブジェクトをセット doChain()を定義 |
chai1.class~chain3.class | chainを実装 |
user(Main.class) | 動作確認 |
*user 他の開発者がこのパターンを利用する、という意味合いを含みます
abstract_class_chain
abstract class chain{
String name = this.getClass().getName();
chain next; // 次のオブジェクトを格納
chain set(chain next){
this.next=next;
return this.next; // 次のオブジェクトを返す
}
abstract void doChain();
void print(){
System.out.println(name);}
}
chain1.class
class chain1 extends chain{
void doChain(){
print();
if(next != null){next.doChain();} // 次のオブジェクトのdoChain()を実行
}
}
chain2.class
class chain2 extends chain{
void doChain(){
print();
if(next != null){next.doChain();}
}
}
chain3.class
class chain3 extends chain{
void doChain(){
print();
if(next != null){next.doChain();}
}
}
user(Main.class)
public static void main(String[] args){
chain1 ch1 = new chain1();
chain2 ch2 = new chain2();
chain3 ch3 = new chain3();
ch1.set(ch2).set(ch3);
ch1.doChain();
}