この問題はテクノロジに依存しませんが、私は C# と ASP.NET を使用しており、これを疑似コードに使用します。どちらがより良いアプローチで、その理由は?
ロギング、トランザクション、および例外処理をカプセル化します。
protected void Page_Load(object sender, EventArgs e) { SomeBusinessClass.SomeBusinessMethod(); } public class SomeBusinessClass { public void SomeBusinessMethod() { using (TransactionScope ts = new TransactionScope()) { doStuff(); ts.Complete(); } catch (Exception ex) { LogError("An error occured while saving the order", ex); } } } }
ロギング、トランザクション、および例外処理を呼び出し元に委譲します。
protected void Page_Load(object sender, EventArgs e) { using (TransactionScope ts = new TransactionScope()) { try { SomeBusinessClass.SomeBusinessMethod(); ts.Complete(); } catch (Exception ex) { LogError("An error occured while saving the order", ex); } } } public class SomeBusinessClass { public void SomeBusinessMethod() { doStuff(); } }
ビジネス ロジック コードにロギングやトランザクションなどへの依存関係を導入することで、一般的でなくなるのではないかと懸念しています。一方、UI コードは非常にきれいに見えます。電話に出られません。他に考慮すべき要素を教えてください。