演化架构与紧急设计: 组合方法和 SLAP - 编程入门网
getOrderKey(s, rs);
addLineItems(cart, c, orderKey);
c.commit();
order.setOrderKeyFrom(orderKey);
} catch (SQLException sqlx) {
s = c.createStatement();
c.rollback();
throw sqlx;
} finally {
try {
c.setAutoCommit(transactionState);
dbPool.release(c);
if (s != null)
s.close();
if (ps != null)
ps.close();
if (rs != null)
rs.close();
} catch (SQLException ignored) {
}
}
}
addOrder() 方法中有许多杂乱的东西。但是,我感兴趣的是接近 try 块开头的工作流。请注意下面这两行:
这两行代码违反了 SLAP 原则。第一行(和它上面的方法)处理设置数据库基础结构的低层细节。第二行是高层的订单方法,业务分析师会 理解它。这两行属于两个不同的领域。如果必须在抽象层之间转移,阅读代码会很困难,这正是 SLAP 原则试图避免的情况。可读性问题导致 难以理解代码的底层设计,因此难以分离这个应用程序中的惯用模式。 演化架构与紧急设计: 组合方法和 SLAP(5)时间:2011-07-13 IBM Neal Ford为了改进 清单 6 中的代码,我要根据 SLAP 原则重构它。在经过两轮提取方法 重构之后,得到了清单 7 中的代码: 清单 7. 改进抽象后的 addOrder() 方法
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |