一、为什么要分层。

  以前的我们,写代码的时候,都在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 方法!。 

聊一聊我们都熟知的 “ Java分层 ”的更多相关文章

  1. Java分层概念(转)

    Java分层概念(转) 对于分层的概念,似乎之间简单的三层,多了,就有点难以区分了,所以收藏了这个. ervice是业务层 action层即作为控制器 DAO (Data Access Object) ...

  2. Java分层思想

    从最常规的分层结构来说,系统层次从上到下依次为: 表现层/UI层/界面层:主要是客户端的展示. 服务层/业务层:直接为客户端提供的服务或功能.也是系统所能对外提供的功能. 领域层:系统内的领域活动. ...

  3. BATJTMD,大厂招聘,都招什么样Java程序员?

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 Java学到什么程度可以找工作? 最近总看到类似这样的问题,也有一些工作3年左右的小 ...

  4. java分层架构概念

    转自:http://www.cnblogs.com/bdqnbenet/p/4924778.html service是业务层 DAO (Data Access Object) 数据访问 1.JAVA中 ...

  5. [Java]Java分层概念(转)

    service是业务层 action层即作为控制器 DAO (Data Access Object) 数据访问 1.JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分 ...

  6. java分层

    一.为什么要分层. 以前的我们,写代码的时候,都在main()方法中,出现了错误,就慢慢调试,这样浪费了我们很长的时间,而我们程序员的时间是非常宝贵的 但是当我们使用分层架构的时候,就可以清晰明确的知 ...

  7. [Java]Java分层概念

      service是业务层 action层即作为控制器 DAO (Data Access Object) 数据访问 1.JAVA中Action层, Service层 ,modle层 和 Dao层的功能 ...

  8. Java基础学习总结(51)——JAVA分层理解

    service是业务层  action层即作为控制器 DAO (Data Access Object) 数据访问   1.JAVA中Action层, Service层 ,modle层 和 Dao层的功 ...

  9. java分层开发

    既然是分层开发,首先我们需要知道的是分为那几个层,并且是干什么的? 1.实体层(entity) 对应数据库中的一张表,有了它可以降低耦合性,同时也是数据的载体. 2.数据访问对象(data acces ...

随机推荐

  1. NYOJ--65--另一种阶乘问题

    /* Name: NYOJ--65--另一种阶乘问题 Date: 17/04/17 16:35 Description: 去年刚开始做题时的代码看不下去了,再做,打表呗 */ #include< ...

  2. IntelliJ IDEA(2017.2)安装和破解(转)

    如果有一定的经济基础,请支持正版,这里提供破解方法. 一.下载并安装, IntelliJ IDEA的官网:https://www.jetbrains.com 二.破解. 百度下载一个 Jetbrain ...

  3. Linux Command Line(I): Beginner

    考試月終於暫告一段落,終於有時間回歸Linux 的懷抱.不知怎的,在VMware Workstation 12 上登入Ubuntu後總是blue screen,明明昨天用terminal 也沒有事啊真 ...

  4. js复习---string

    对js的string的方法复习: 1.charCodeAt()  返回一个整数,代表指定位置字符串的unicode编码. strObj.charCodeAt(index) index 是处理字符的从零 ...

  5. 使用yeoman构建angular应用

    本文将介绍如何亲手来完成一个yeoman的generator,以实现快速构建最适合自己的项目. 本文将实现的generator起名为ngtimo,依照yeoman的命名规矩就叫做generator-n ...

  6. [NOIP2011] 聪明的质监员 二分+前缀和

    考试的时候打的二分但没有用前缀和维护.但是有个小细节手误打错了结果挂掉了. 绝对值的话可能会想到三分,但是注意到w增大的时候y是减小的,所以单调性很明显,用二分就可以.但注意一个问题,就是二分最后的结 ...

  7. BPM与OA的区别及联系

    BPM与OA的区别及联系 近年来,在企业管理信息系统一些名词反复被提及,然而外行人对于这些名词则是一头雾水,网上的解释又鱼龙混杂,没有绝对权威的文献可供参考,因此也就让我们对这些名词的认识越来越模糊. ...

  8. python标准数据类型

    Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) Python 中的变量不需 ...

  9. Java 脚本引擎

    脚本引擎,就是一个编程语言的解释器,它的功能是解释执行用户的程序文本,将它译成计算机能执行的机器代码,完成一系列的功能. Java脚本引擎简单地说就是指Java提供的一组兼容操作各种脚本语言的的API ...

  10. Java开发工具(Eclipse中内容辅助键的使用)

    * A:Alt+/ 起提示作用* B:main+alt+/,syso+alt+/,给出其他提示* C:补充输出语句,选中需要输出的部分,alt+/选择最后一项即可* C:定义自己的alt + / * ...