From: Hideto ISHIBASHI Date: 2000-09-13T10:37:02+09:00 Subject: [ruby-list:24935] Re: yaiba (blade clone) 0.0.1 石橋秀仁です。 高橋さん、何度も貴重なご意見ありがとうございます (T-T) TAKAHASHI Masayoshi wrote: > 高橋征義です。 > > はい。基本的にはあのままになると思います。 > > ただし、スレッド関係のメソッドが2つか3つ追加される予定です。 > > なお、スレッド機能を追加する時点で、Databaseはすこし複雑になります。 > > スレッドをRDBMSの関係表などからツリーにするのはDatabaseの責務だから。 > > [ruby-list:22579]の原さんのメールによればbladeはDbmを二つ使っている > ようですが、yaibaのDatabaseもそういうようなインターフェース(categoryと > sequence numberを投げると、そのメールが参照しているメールのsequence > numberの列が返ってくるようなものとか)が追加されるんでしょうか? そうです。ほぼそのとおりになると思います。 そこで、ツリーが返るかどうかなど、これから検討します。 > > そいえば、、、 > > インターフェースを継承していませんけど、 > > これってわかりにくいですか? > > 「共通のインターフェース(シグネチャ)」 > > を実装している、っていうのが、ちょっとわかりにくいかも。 > > たしかに、少しわかりにくいかもしれません。 > やっぱり[ruby-list:24885]でまつもとさんが書いていたように、 > 抽象クラスで明示してある方が、人間にもわかりやすいように思います。 なるほど。他人の目からはそう見えるわけですね。 では、Javaのinterfaceのようなmoduleを追加します。 module Database module DatabaseInterface # placeholder: empty methods (virtual 'abstract methods') def size(category) end # ... end class Oracle include DatabaseInterface # implement all methods in DatabaseInterface module # ... end class PStore include DatabaseInterface # implement all methods in DatabaseInterface module # ... end end という感じにすると思います。 ひとりごと: いまちょっと忙しいので、つぎのリリースは、 もうちょっと先になると思います。 いまyaibaはぜんぜんいじっていません (^^; もう少しドキュメントを整備して、 いろんな機能を追加して、ぼく以外の人に いじってもらえる体制ができたら、 CVSサーバーを使って公開します。 -- 石橋秀仁 hideto@jobweb.co.jp Odigo: 1489394 ICQ: 83329246