[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Agentクラスの正体(Javaオブジェクト設計)




皆さんこんにちは。

「Peter Coadによる Javaオブジェクト設計」の謎のひとつが解明されました。

第2章「コンポジションを利用した設計」での Agent クラスですが、
「代理人」と訳すのは正確さを欠きます。

http://www.oi.com/jd-book.htm

上記からダウンロード出来る本書(第2版)のソース

http://www.oi.com/jd/Chapter_3.zip

この中には実行可能なものも少なくありません。

第2章のソース Person.java には main() メソッドがあります。

/** Use this method to run a "test" of the classes*/
	public static void main(String[] args)
	{
		// Create a person object
		Person bond = new Person("James Bond");

    // Create an Agent (passing in the person)
    Agent agent007 = new Agent( bond );
    bond.addAgent( agent007 );

    // Create a passenger (passing in the person)
    Passenger passenger007 = new Passenger( bond );
    bond.addPassenger( passenger007 );

    // Test output
    System.out.println( bond );

    // Wait for pressing Enter
    try { System.in.read(); } catch (java.io.IOException e ) {}

	}  // END main()

実行結果はこうです。

D:\source\Chap2>java Person.Person
James Bond; Agent; Passenger

ジェームズ・ボンドの職業は... そう、Secret Agent ですね。

ボンドも飛行機に乗ることがあるわけで、
その場合は Passenger になるわけです。

ほかのテスト・プログラムもぜひ実行してみてください。面白いです。

だだし、JBuilder 2 を使って開発されているものがあり、JDK 1.2.x では
com.sun.java.swing パッケージが見つからないエラーになりますので
ご注意ください。
-- 
ENDO Yasuyuki <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/ (Japanese Only)