我在大量方法中出现了以下大量的页眉和页脚代码.是否有更清洁的方式来实现这一点?
Session sess = factory.openSession();
Transaction tx;
try {
tx = sess.beginTransaction();
//do some work
...
tx.commit();
}
catch (Exception e) {
if (tx!=null) tx.rollback();
throw e;
}
finally {
sess.close();
}
Run Code Online (Sandbox Code Playgroud)
有问题的类实际上是一个EJB 2.0 SessionBean,它看起来像:
public class PersonManagerBean implements SessionBean {
public void addPerson(String name) {
// boilerplate
// dostuff
// boilerplate
}
public void deletePerson(Long id) {
// boilerplate
// dostuff
// boilerplate
}
}
Run Code Online (Sandbox Code Playgroud)
如果您可以适应// do some work策略模式,则可以创建一个包含样板代码的方法,将该操作作为参数传递;
void executeWork(WorkInterface work) {
Session sess = factory.openSession();
Transaction tx;
try {
tx = sess.beginTransaction();
work.execute();
tx.commit();
}
catch (Exception e) {
if (tx!=null) tx.rollback();
throw e;
}
finally {
sess.close();
}
Run Code Online (Sandbox Code Playgroud)
只要您不必将许多参数传递给execute()方法,此模式就适合.
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |