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に創り変えられる様が表現できていない。


参考


  • HumanBeing.worshipGod(), HumanBeing.prayForDailyNeed(), HumanBeing.Amen() ルカ 11章2-4節
  • HumanBeing.getLife(Object obj) コリントII 5章17節、ローマ 3章、ヘブル 11章35節、ペテロ 1章5節
  • Spiritクラス コリントI 12章9節
  • Junichiroクラス イザヤ 43章4節
  • HumanBeing.knock() コリントII 3章15,16節、
  • あと、他の機能については、私は未熟なので聖書からうまく引用できません。見付かり次第追加します・・・


更新履歴


  • 2008-10-09 - HTMLへ形式変換
  • 2006-07-04 - LOGLOGへ移動(Passwiki形式へ変換)
  • 2003-09-02 - ろぐろぐへリンクを追加。
  • 2003-08-08 - 更新履歴を追加。
  • 2003-07-16 - 初版公開。