层次结构及对象的定义|学习笔记

简介: 快速学习层次结构及对象的定义

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术层次结构及对象的定义学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15920


层次结构及对象的定义


内容简介:

一、四个层次机构体系

二、model包

 

一、四个层次机构体系

1. 第一层是控制器层controller

controller 的职责主要是负责接收前端的数据,把这些数据传给后端然后处理要返回给前端的数据封装要返回给前端的数据,以及处理一些错误码,异常的处

2. 第二层是service层

service 层主要的职责是用来去写业务代码因为业务代码是比较单薄这个例子主要是对于商品和规格对象的增删改查,所以可以看到,在例子中间 service层的代码

是非常少基本上没有。

3. 第三层称之dao层。

用来访问数据的,访问数据的定义是它要从数据库里去拿到数据,然后把数据封装成为我们想要的对象的样子。所以dao层中间因为现在的业务主要就是数据的增删改查,所以例中间大量的代码是在dao

4. 最后一层是mopper层。

mopper 层的主要的作用是用来实现对象模型和关系数据库的转换主要是一个

mopper 接口。

以上是整个程序的四层的体系结构,它是一个严谨的分层结构service 层只能调用dao dao 层只能调用mopper 层,不能实现跨层的调用

 

二、model包

除了四个包以外还有一个包叫做 model。model 包里包含了三类的对象

第一个对象是 vo对象vo 对象是用在 controller层的。controller 层的作用主要是两个第一是接收从前端过来的数据。这一类的 vo 里是有带合法性检查,因为它要对前端接外的数据进行合法性检查。前端过来的数据在数据库里存的数据以及在在系统中间的对象模型是不一样的。所以接收从前端传数据的这种 vo 是完全按照前端所需要传的数据的格式来定义的,跟对象模型和数据库的存储是没有关系

的。

第二类的 vo 在命名上加了一个 retvo。在例中间有两个一是固值的 retvo,一个是 product vo。这两个 vo的作用是用来去封装返回给前端的数据。所以是没有合法性检查的只封装了需要返回给前端的数据前端想要什么样的数据或者在api中间定义的是给前端什么样的数据就用这样的一个 vo去封装是在 model层中间的第一类对象两个 vo分别用来接收从前端传过来的数据以及返回给前端数据。

第二类对象称之为业务对象,有人把它称之为 business bo。没有去给它做特别的名字,后面没有后缀的啊,这一类的对象称之为业务对象业务对象实际上是构成对象模型的重要的组成部分换言之对象模型其实就是业务对象来构成的,是要把对象模型组件组装出来然后去执行去实现业务逻辑

第三类对象是 po。po 的作用是用来去对数据库进行访问。po基本上跟数据库里的表是一一对应的。所以每一张数据库值的表就会有一个对应的 po。数据库里的字段

就是 po的属性。所以 po 的对象并不能体现出它的面向对象的模型出来。dao 层的重要的作作用就是。从 po中间去构建出 bo对象业务对象,然后让 service层在这些业务对象实现它的业务逻辑

除了 model的包以外还有一个包叫做 util。util 包里是一些通用的工具啊,包里的代码很多都是用静态方法来实现的,所以它不是用面向工程面向对象的思想来

实现的。所以上所有的代码中都有可能用到了 util的代码。

vo、bo、po 三者之间的关系。代码中 vo有两种,一种是用来传对象的,一种是用来返回值的。所以传对象的那一类的vo里都有一个方法,它可以用来去创建对应的bo的对象为了节省内存空间,可以把 po对象放到 bo对象里。bo 对象其实并不是真正存在的一个对象,虽然它是一个类,但是可以看到所有的 bo对象里都放了一

po的对象

实际上是把 po对象 用bo的方式给展现出来,这里是我们称之为装饰器的设计模式也有人把它称之为代理设计模式无论哪种名字啊,它的作用就是它的里其实是一个 po,但是它展现出来的是一个 bo。所以它把 po中间不需要的一些属性以及在 po中间没有的一些属性在 bo上把它实现出来

对于每一个 bo来说,因为它最后是要返回值返回给前端,所以 bo的是可以产生一个带 vo的一个对象。所以所有的 bo对象都实现了一个接口叫做 vovo 中间定义的方法就可以从中间创建出来一个需要返回给前端的的一个对象

相关文章
|
2月前
|
存储 C++
c++类和对象一对象特性一成员变量和成员函数分开存储
c++类和对象一对象特性一成员变量和成员函数分开存储
14 0
|
3月前
|
存储 编译器 C语言
C++:类的概念
C++:类的概念
24 0
|
8月前
2.【类的组合(在一个类中定义一个类)】
2.【类的组合(在一个类中定义一个类)】
16 0
|
11月前
|
编译器 C语言 C++
C++ 之什么是类 & 对象的关系?
C++ 之什么是类 & 对象的关系?
|
Java
Java面向对象(2)--类的成员属性
Java面向对象(2)--类的成员属性
62 0
Java面向对象(2)--类的成员属性
|
存储 Java
类与类的关系
## 继承关系 1.子类想要继承父类,通过extends关键字来实现 2.子类继承了父类,可以调用父类中(public protected)的属性和方法 2.1构造方法严格意义来说 不算做子类继承过来 只是单纯的在子类调用构造方法时默认调用父类的构造方法 2.2程序块严格意义来说 不算做子类继承过来(子类自己调用不到 没名字) 程序块子类不能直接调用 子类执行构造方法之前 默认调用了父类的构造方法 父类构造方法之前自动执行父类的块 3.子类除了能继承父类的属性和方法外,子类还可以添加自己独有的成员(属性 方法)
92 0
面向对象定义及方法的定义与使用
面向对象程序设计(objective- oriented programming) 对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理 面向对象思想是分类的思维模式,思考解决问题需要哪些分类,对这些分类
|
存储 开发者 Python
对象的结构|学习笔记
快速学习 对象的结构
101 0
|
C#
C#中的结构与类
C#中的结构与类
123 0
|
开发者 Python
类的定义|学习笔记
快速学习 类的定义
119 0