[Seasar-user:2028] Re: S2Dao へのフィードバック

Ito Yoshiichi Ito_Yoshiichi
2005年 5月 26日 (木) 13:20:23 JST


こんにちは。
みなさん返信ありがとうございます。

まとめてレスします。

加藤太朗さん:
[Seasar-user:2025]
> でも一般的にはアップデート件数0で例外ってなかなかレアだと思うので
> 許容範囲な気がしないでもないです。

レアでしょうか?
もしこの機能がないなら、私は戻り値を void にはしません。
戻り値を void にすること自体がレアということであれば
いちおう納得しますが。

> 依存性はともかく私はこのアイデアに、ゾクゾクッってきました。

実は私も最初は「これはいいかも!」と思ったのでした。(^_^)

あと、前のメールで「アノテーションなら許せる」って書きましたけど、
J2SE 1.5 のアノテーションだとたぶん import が必要になるんですよね。

  ∞ ∞ ∞ ∞

小林(koichik)さん:
[Seasar-user:2026]

  (ここまで略)

> とはいえ,これはあくまでも表面的な非依存に過ぎません.
> そもそも例外をスローするというのは伊藤さんの提案ですが,
> その例外の型はどんなものを想定していましたか?
> それは,S2Dao とそれ以外の何かとの間で互換性 (catch する側が
> DAO の実装に依存しない) があるのでしょうか?
> 例外を使うなら Java の標準ライブラリに含まれている例外型を
> 使わない限り,利用者はその実装に依存することになります.
> 今回の場合,適切な例外型が標準ライブラリに含まれているとは
> 思えないので,実装依存を避けるのは困難でしょう.

例外の型自体は S2Dao で適当に決めていただいてかまいません
(もちろん RuntimeException のサブクラスで)。
このご意見に対する回答は溝口さんのメール(No.2027)のとおりです。

> 実装依存を避けるのであれば,更新件数を戻り値で受け取る方が
> 無難だと思います.

そうですね。

> 蛇足ですが,DAO の実装に依存しないことを過剰に意識するのは
> あまり生産的ではないと思います.
> # 全く意識しないのはもちろん問題外ですが.

  (以下略)

全くおっしゃるとおりです。

S2Dao と Hibernate ではやはりアーキテクチャが異なるので
上位レイヤの実装も変わってくるでしょうね。

でも、できれば、

  S2Dao ⇔ Dao with S2JDBC ⇔ Dao with JDBC
  S2Hibernate Dao ⇔ Dao with S2Hibernate

の変更くらいは同じインタフェースで対応できた方が
良いかなと思います(しつこいか^^;)。

org.seasar.hibernate.dao の存在は今まで気がつきませんでした。
もう少し勉強してみます。

  ∞ ∞ ∞ ∞

溝口顕一さん:
[Seasar-user:2027]
> 僕は、DaoがS2Daoに依存してしまうのはしょうがないかなと思ってます。
> 正直、僕も最初はインターフェイスなので、実装で依存するのはしょうがないけ
> どインターフェイスにインポートしなきゃいけないというのに抵抗を感じていま
> した。S2を使わなくなったら、インポートを外さなきゃいけないですから。
> 僕の場合は、S2からS2じゃないものに変更するという状況がありえないので、今
> は問題ないというように考えています。

そうですね。Mock に切替えられればOKというのが現実的な
判断でしょうか。

> 一時期例外を業務ロジックでハンドリングしていたのですが、いまはインターセ
> プターを使って開発するシステムで定義した例外に置き換えるようにしたので、
> 業務ロジック側にもS2のクラスをインポートするようなことはありません。

ふむふむ。私も徐々にアスペクト指向的な考え方ができるように
なってきました。(^^)v

----
伊藤 喜一




Seasar-user メーリングリストの案内