sealw:
表示层逻辑、业务逻辑、持久逻辑,这三者是否可以独立变化?
[阅读: 557] 2006-11-13 05:03:54
分层的目的是做到三者能独立变化。
例如一个C/S的应用要改为B/S,理论上只是表示层逻辑发生了变化,但实际上往往应用要重新写过。再如一个应用的持久数据库从Access改为SQL server,原来的架构设计不好的话,估计也和重写差不多。
O/R mapping主要解决业务逻辑与持久逻辑分离的问题,使用Hibernate的这样的框架,可以比较容易地做到更换数据库产品,例如在开发时使用HSQL,在集成测试和部署时再使用Oracle。
业务逻辑也可能独立地发生变化。典型例子就是工作流,可以设想有这样的变化,界面和持久都没变,只是执行业务的流程变了,审批的过程变了等等。
响应变化的能力,将变化局限在可控制的范围内,是解决软件危机中维护成本过高的关键因素。这也是为什么Jacobson等强调以架构为中心,强调组件式开发的原因。