以前的人们写代码, 都写在 main() 方法中, 如果出现了错误, 就慢慢调试, 这样调试会浪费很多时间, 而程序员的时间是非常宝贵的. 但是当使用分层架构的时候, 在系统出现错误的时候就可以清晰明确的知道错误出在哪里, 现在的公司中百分百都是使用分层架构的, 因为那样可以分离我们程序员的关注, 使代码更为简洁.
分层架构的好处
分层架构其实带来了很多好处, 首先就是方便维护和分离关注点, 这一点前面已经提到了.
便于更改或替换
先说说便于替换或者更新, 比如我现在用的数据库是 SQL Server 数据库, 如果我需要将数据库更换为 MySQL, 在增删改查的语法一致的情况下, 我们只需要更改 BaseDao 工具类的连接字符串, 而不用更改其它层的代码.
实现软件之间的解耦
解耦之后, 每个部分都可以独立变化.
举个简单的例子, 画一个三角形和画一个文字, 在 DX 和 OpenGL 下面用的是截然不同的方法 (不仅仅是函数名不一样). 但是你哪一天你发现, 你爱用 DX 还是 OpenGL, 丝毫不影响你如何画三角形还是文字, 爱画什么画什么, 那么你画的东西跟你画的手段就解耦了. 这个解耦的具体做法就是在中间插入一层接口 (interface). 软件的所有问题都可以通过增加一层 interface 来解决. 你的团队越大, 需求变化越快, 你越要保证程序员之间的依赖关系越少, 你的软件解耦的就越好, interface 就越多, 关系就越复杂 (跟乱不一样), 应付变化就越容易, 钱赚的就越多, 越稳定.
做提高软件组件的重用
在软件开发中, 由于不同的环境和功能要求, 我们可以通过对以往成熟软件系统的局部修改和重组, 保持整体稳定性, 以适应新要求. 这样的软件称为可重用软件.
分层的架构和解析
代码分层可大致分为:
DAO(数据访问对象): 该层分为接口和他的实现类来实现功能, dao 子目录只提供对外接口, 而他的实现类要放到数据访问层, 就是 impl 层.
DTO(Data Transfer Object, 数据传输对象): 主要用于远程调用等需要大量传输对象的地方. 比如我们一张表有 100 个字段, 那么对应的 PO 就有 100 个属性. 但是我们界面上只要显示 10 个字段, 客户端用 web Service 来获取数据, 没有必要把整个 PO 对象传递到客户端, 这时我们就可以用只有这 10 个属性的 DTO 来传递结果到客户端, 这样也不会暴露服务端表结构. 到达客户端以后, 如果用这个对象来对应界面显示, 那此时它的身份就转为 VO.
BIZ(业务逻辑层): 跟 dao 层一样只提供接口.
Model(实体层): 用于读, 取数据.
JavaBean: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 方法.
"你的气质里, 藏着你走过的路, 读过的书和爱过的人."
来源: http://www.bubuko.com/infodetail-3355486.html