[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)