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

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

开发者学堂课程【高校精品课-厦门大学 -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 中间定义的方法就可以从中间创建出来一个需要返回给前端的的一个对象

相关文章
|
4月前
|
C++
c++继承层次结构实践
这篇文章通过多个示例代码,讲解了C++中继承层次结构的实践应用,包括多态、抽象类引用、基类调用派生类函数,以及基类指针引用派生类对象的情况,并提供了相关的参考链接。
|
5月前
|
Java
继承与组合的区别
【8月更文挑战第22天】
151 0
|
8月前
|
定位技术 计算机视觉 Windows
类间两种关系:继承、 组合
类间两种关系:继承、 组合
46 0
|
8月前
|
存储 编译器 C语言
C++:类的概念
C++:类的概念
50 0
|
监控 安全 网络安全
CWPP与EDR的定义与区别
随着信息系统的发展,大家都在说网络安全要覆盖“云”、“管”、“端”,CWPP与EDR是目前非常火的产品,一个面向云端服务器的防护,一个是面向常规终端PC端的防护。
2251 0
UML关系与代码的映射
UML关系与代码的映射
|
编译器 C语言 C++
C++ 之什么是类 & 对象的关系?
C++ 之什么是类 & 对象的关系?
|
存储 编译器 C语言
C++ 基础篇之类 & 对象的关系
C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。
C结构中包含自己的嵌套定义
C结构中包含自己的嵌套定义
73 0
ES6—07:构造函数与原型对象、对象原型三者关系图解
ES6—07:构造函数与原型对象、对象原型三者关系图解
151 0
ES6—07:构造函数与原型对象、对象原型三者关系图解