Java言語による主の祈り(独自拡張版)
Last modified: Sat, 15 Jul 2006 10:15:23 +0900 Junichiro Sueishi
ここは、結城さんによる、プログラム言語で信仰的な内容を表現する試み「Java言語による主の祈り」を独自に拡張したものを公開しているページです。
主の祈りコード解説
以下はオリジナルの作者である結城さんの意図されていた部分。
- 「信仰(faith)」と「希望(hope)」と「愛(love)」というパッケージをインポートしています。
- 「祈り手(Prayer)」は「人間(HumanBeing)」の拡張クラスとして宣言しています。
- 祈りは神さまへ語りかけることですので、HolySpiritualOutputStreamというフィールドを介してwriteします(神さまからの呼びかけに耳を傾けるHolySpiritualInputStreamもあった方がよいですね)。
- mainメソッドでは、私たち(We)が生きている間中、祈りつづける様子が表現されています。祈りが終わるのはisAliveでなくなったときか、予期せぬExceptionが投げられたとき。
- コンストラクタでは「天にましますわれらの父("OurFather.in.Heaven")」との通信を確保し、それを元に聖霊を介した通信経路(HolySpiritualOutputStream)を作成します。
- 三つのメソッドworshipGod, prayForDailyNeed, Amenはそれぞれの祈りの言葉をoutを使って父なる神様に語りかけています。
- 祈りつづけるため、closeメソッドは呼んでいません。finalizeの中でcloseされることを期待しています。
- メソッドがすべてprivateなのは、祈りは各人が自分の意志で自発的に行うものであり、他から強制されて行うものではないことを表現しています。
つづいて、私が勝手に独自拡張した部分について解説します。
クラス構成は以下のようになっています。

- Junichiro(つまりあなた)は、世界で1人のユニークな存在であるので、Singletonパターンが使われています。
- 人間は、神さまによって生かされているのでHumanBeingや、Prayerにmainは不要と考えました。
- Prayerは、非同期で祈ることができるSpiritクラス(java.lang.Threadをextends)を持ち、御霊によって祈ることができる。
- HumanBeingクラスは、祈り、神の導きを受けるためのトリガーであるknock(Object obj)メソッドを持っているが、まだ機能していない。
- Prayerクラスは、HumanBeingのknock(Object obj)をオーバーライドし、knock(Object obj)が機能しているので、神さまに反応することができる。
- 信仰によってのみ、永遠の命を得ることができるメソッドgetLife(Object obj)を追加。
- 神さまは、人間のインスタンスを全て持っているはずなので、特別な通信手段を介することなく、HumanBeing.putVoicesOfTheGod(Object obj)などを直接呼び出すことができる。
- (参考) 神さまは、自らをインスタンス化し、以下のようにJunichiroを創られた。
God god = new God();
Junichiro jun = Junichiro.getLife(god);
System.out.println("Junichiroに命を与えた");
jun.knock(god);
- (残件) 祈りの頻度を変更する仕組みが未実装。HumanBeingからPrayerに創り変えられる様が表現できていない。