[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10523] Re: DB トランザク ション ( 度 々 commit/rollback を書きたくない)



TransactionMethodのexecuteメソッド・・というか
個々のDBCommandクラスのメソッドの引数および、戻り値(リテラル含む)
がすべて異なる場合、もしくは引数は同じ型で戻り値が異なる
場合はどうなるんでしょう?
(自分でも考え中です)

元々の問題は簡単であるクラスですべてのメソッドが
同じ処理を繰り返しやっているのでDRY原則に反している気がしたので
なんとかならないものかと思ったんです。

例
class A {
  public void methodA(int i){
    try{
      //methodAの処理
      //commit処理
    }catch(ExceptionHodler e){//ExceptionHodlerはすべての例外をカプセルかする
       //非常に長い例外処理(正しい型をinstanceofでログに吐く(すべてのメソッドで
同じ))
       //rollback処理
    }
  }
  public int methodB(int i){
    try{
      //methodBの処理
      //commit処理
    }catch(ExceptionHodler e){//ExceptionHodlerはすべての例外をカプセルかする
       //非常に長い例外処理(正しい型をinstanceofでログに吐く(すべてのメソッドで
同じ))
       //rollback処理
    }
  }
  public void methodC(int i,int arg){
    try{
      //methodCの処理
      //commit処理
    }catch(ExceptionHodler e){//ExceptionHodlerはすべての例外をカプセルかする
       //非常に長い例外処理(正しい型をinstanceofでログに吐く(すべてのメソッドで
同じ))
       //rollback処理
    }
  }
}

__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!
http://bb.yahoo.co.jp/