一、为什么要分层。
  以前的我们,写代码的时候,都在main()方法中,出现了错误,慢慢调试,这样浪费了我们很长的时间,而我们程序员的时间是非常宝贵的
  但是当我们使用分层架构的时候,可以清晰明确的知道错误出在哪里,或者在公司中,基本都是使用分层架构的,因为那样可以分离我们程序员的
  关注,更为简洁。
  二、分层带来了哪些好处。
  其实带来了很多好处,首先,方便维护和分离关注点,不谈了。
  1.便于更改或替换。
  先说说便于替换或者更新,我现在用的数据库是SQLServer数据库,如果我需要
  将数据库更换为MySQL,如果增删改查的语法一致的情况下,我们只需要更改BaseDao工具类的连接字符串,而不用更改其它层的代码。
  2.实现了软件之间的解耦。
  是每个部分独立变化。举个简单的例子,画一个三角形和画一个文字,在DX和OpenGL下面用的是截然不同的方法(不仅仅是函数名不一样)。
  但是你哪你发现,你爱用DX还是OpenGL,丝毫不影响你如何画三角形还是文字,爱画什么画什么,那么你画的东西跟你画的手段解耦了。
  这个解耦的方法是在中间插入一层interface。
  孔子曰,软件的所有问题都可以通过增加一层interface来解决。你的团队越大,需求变化越快,你越要保证程序员之间的依赖关系越少,
  你的软件解耦的越好,interface越多,关系越复杂(跟乱不一样),应付变化越容易,钱赚的越多,越稳定。
  3.做提高软件组件的重用
  在软件开发中,由于不同的环境和功能要求,我们可以通过对以往成熟软件系统的局部修改和重组,保持整体稳定性,以适应新要求。
  这样的软件称为可重(chong)用软件。
  三、分层的架构和解析。
  可大致分为:

  DAO:该层分为接口和他的实现类来实现功能,dao子目录只提供对外接口,而他的实现类要放到数据访问层,是impl层。
  DTO:
  Data Transfer Object 数据传输对象
  主要用于远程调用等需要大量传输对象的地方。
  比如我们一张表有 100 个字段,那么对应的 PO 有 100 个属性。
  但是我们界面上只要显示 10 个字段,
  客户端用 WEB service 来获取数据,没有必要把整个 PO 对象传递到客户端,
  这时我们可以用只有这 10 个属性的 DTO 来传递结果到客户端,这样也不会暴露服务端表结构 .
  到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份转为 VO
  DAO和DTO的区别:
  DAO :数据访问对象 —— 同时还有 DAO 模式
  DTO :数据传输对象 —— 同时还有 DTO 模式
  BIZ:业务逻辑层,跟dao层一样只提供共接口。
  Model:实体层,用于读、取数据。
  JavaBian:javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,是用来设置数据的属性和一些行为,然后我会提供获取属性和设置属性的get/set方法
  Servlet:用于跟JSP页面进行交互
  POJO:(plain ordinary java object) 简单无规则 java 对象 纯的传统意义的 java 对象。是说在一些 Object/Relation Mapping 工具中,能够做到维护数据库表记录的 persisent
  object 完全是一个符合 Java Bean 规范的纯 Java 对象,没有增加别的属性和方法。我的理解是基本的 Java Bean ,只有属性字段及 setter 和 getter 方法!。