一、为什么要分层。
以前的我们,写代码的时候,都在 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 来传递结果到客户端,这样也不会暴露服务端表结构 .
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 方法!。