把各个功能按调用流程进行了模块化,模块化带来的好处就是能够随意组合,举例说明:若是要注册一个用户,流程为显示界面并经过界面接收用户的输入,接着进行业务逻辑处理,在处理业务逻辑又访问数据库,若是咱们将这些步骤所有按流水账的方式放在一个方法中编写,这也是能够的,但这其中的坏处就是,当界面要修改时,因为代码全在一个方法内,可能会碰坏业务逻辑和数据库访问的码,一样,当修改业务逻辑或数据库访问的代码时,也会碰坏其余部分的代码。分层就是要把界面部分、业务逻辑部分、数据库访问部分的代码放在各自独立的方法或类中编写,这样就不会出现牵一发而动全身的问题了。这样分层后,还能够方便切换各层,譬如原来的界面是Swing,如今要改为BS界面,若是最初是按分层设计的,这时候不须要涉及业务和数据访问的代码,只需编写一条web界面就能够了。web
分层的好处:数据库
1.实现了软件之间的解耦;模块化
2.便于进行分工hibernate
3.便于维护设计
4.提升软件组件的重用产品
5.便于替换某种产品,好比持久层用的是hibernate,须要更换产品用toplink,就不用该其余业务代码,直接把配置一改。class
6.便于产品功能的扩展。扩展
7.便于适用用户需求的不断变化软件