强烈推荐几种经典的系统开发模型

简介: 今天给大家分享一些开发中常用的开发模型。这些模型从复杂到简单进行了一步一步的简化,让开发代码之间的耦合度更加低、代码利用率更高。

系统开发模型


  • 系统开发模型,即系统架构,是指整合应用系统程序大的结构。经常提到的系统结构有两两种:三层架构和MVC。 这两种结构既有区别又有联系。但是这两种结构的是使用,都是为了降低系统模块间的耦合度。
  • 传统的javaWeb项目的系统开发模型大体经理了四个阶段:纯JSP、JSP+JavaBean的Model1、MVC的Model2、MVC+三层架构。


1. JSP开发模型


  • ”纯JSP“开发模型中将所有业务逻辑、数据显示功能都由JSP页面完成。其缺点是很明显的:JSP页面中的代码结构很乱、显示功能与业务代码没有划分开,维护与升级相当麻烦...
  • 此时JSP既用来处理业务,又用来显示内容。
  • 这种模型不是只存在一个JSP,存在多个JSP之间的跳转。

微信截图_20220609233608.png

2. JSP+JavaBean的Model1

  • JSP大部分用来显示内容,但是还有一部分是用来处理业务,JSP页面还承担着大量的请求解析、业务处理功能。
  • JavabBean(就是一个Java类)用来处理业务。将JSP中的业务从JSP中分走了一部分。
  • 这里也不是只存在一个JSP与一个JavaBean,也是多个之间的跳转。

微信截图_20220609233620.png

2.1 JavaBean


  • JaveBean根据具体的概念的不同,可以分为两大类:广义JavaBean与JavaBean。

微信截图_20220609233707.png

所谓广义JavaBean,就是指一般意义上的Java类,其主要功能有两个:承载数据与业务处理。所以广义的JavaBean又分为两类:数据承载Bean与业务逻辑承载Bean。

  • 数据承载Bean就是指实体类,专门用于承载业务数据的,如Student、User等
  • 业务处理Bean则是指Servlet或Dao对象,专门用于处理用户提交请求的。

侠义JavaBean,是指符合SUN公司提出的“JavaBean”规范的Java类。 JaveBean规范规范,满足以下四点的Java类,称为JavaBean:

  • 该类需要是公共的,即public class...
  • 该类需要实现 Serializable(序列化)接口。
  • 该类需要具备无参构造器,无论是默认的,还是显示定义的。
  • 该类如有成员变量,这些成员变量必须是私有的,且需要提供这些私有成员变量的公共getter与setter。

在实际项目中,实体类一般会被定义为侠义的JaveBean。即,广义的JaveBean的数据承载Bean一般会被定义为满足“JavaBean规范”的侠义JavaBean。


3.MVC开发模式(MVC的Model2)


注意:model2指的就是MVC开发模式

MVC,即 Model模型、View视图、Controller控制器。

微信截图_20220609233741.png

  • view:视图,为用户提供使用界面,与用户直接进行交互。
  • Model:模型,承载数据,并对用户提交请求进行计算的模块。其分为两类:一类成为数据承载Bean,一类称为业务处理Bean。所谓数据承载Bean是指实体类,专门用户承载业务数据的,如Student、User等。而业务处理Bean则是指Servlet或Dao对象,专门用于处理用户提交请求的。
  • Controller:控制器。用于将用户请求转发给相应的的Model进行处理,并根据Model的计算结果向用户提供相应响应。


4. 三层架构


  • 三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致

三层架构:视图层View、服务层Service、持久层Dao。

微信截图_20220609233813.png

  • View层:表现层、视图层,对于Web开发,也称为web层。 用于接收用户提交请求的代码在这里编写。
  • Service层:业务层、逻辑层。 系统的业务和逻辑主要在这个完成。
  • Dao层:持久层、数据访问层。 直接操作数据库的代码在这里编写。DAO,即Data Access Object,数据访问对象。

为了更好的降低各层之间的耦合度,在三层架构程序设计中,采用面向抽象的编程。View为上层,Service为下层。即上层对下层的调用是通过接口实现的。而下层对上层的真正服务提供者,是下层接口实现类。服务标准(接口)是相同。


5.MVC+三层架构

MVC+三层架构的开发模型,是=传统的JaveWeb项目中最常用开发模型。

所谓”MVC+三层架构“的开发模型,主要是指MVC的业务处理Model分为了两层:Service层与Dao层,分别用于处理业务逻辑与持久化操作。

微信截图_20220609233845.png

  • 蓝色是三层架构,紫色的是MVC,将MVC的Model层分为:Service与Dao。


6.sms学生系统管理系统




相关文章
|
存储 IDE 编译器
『C语言初阶』第五章-数组
『C语言初阶』第五章-数组
|
11月前
|
存储 前端开发 测试技术
MVC、MVP、MVVM 模式
MVC、MVP 和 MVVM 是三种常见的软件架构模式,用于分离用户界面和业务逻辑。MVC(Model-View-Controller)通过模型、视图和控制器分离数据、界面和控制逻辑;MVP(Model-View-Presenter)将控制逻辑移到 Presenter 中,减少视图的负担;MVVM(Model-View-ViewModel)通过数据绑定机制进一步解耦视图和模型,提高代码的可维护性和测试性。
|
7月前
|
图形学
Unity 射线移动物体Ray
在Unity中,通过射线检测实现3D物体的拖拽和移动。射线由起点和方向组成,使用`Physics.Raycast`检测与物体的交点。点击物体时,记录位置偏移量,拖动过程中更新物体位置。代码包括基本拖拽和上下拖动功能,适用于正交摄像机场景。测试时为物体设置特定标签(如"JQR")以便区分和操作。 示例代码展示了如何通过鼠标事件控制物体移动,并结合层级掩码优化射线检测。具体实现包括:点击选中物体、拖动更新位置、释放鼠标取消选择。此外,提供了上下拖动的额外功能,通过按键切换模式。
|
jenkins 网络安全 持续交付
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
210 3
|
缓存 应用服务中间件 nginx
「Python系列」Python uWSGI
uWSGI(全称为“universal web server gateway interface”)是一个高性能的Python Web服务器和应用程序容器。它可以将Python Web应用程序与Web服务器分离,从而实现高并发、低延迟的服务。uWSGI支持多种Web服务器和应用程序框架,如Nginx、Apache、Django、Flask等。
508 0
|
机器学习/深度学习 自然语言处理 大数据
社交媒体的情感分析大数据模型
构建基于大数据的情感分析模型,利用Python和机器学习处理社交媒体数据。情感分析识别文本情感倾向,助力市场洞察和舆情监控。技术栈包括Python、NLP库(nltk, spaCy, TextBlob, VADER)、Scikit-learn、TensorFlow/PyTorch及大数据工具。数据收集(如Twitter API)、预处理(去除噪声、分词)、特征提取(TF-IDF、词嵌入)、模型训练(逻辑回归、BERT)是关键步骤。模型能捕捉文本情感,支持决策,随着技术进步,应用前景广阔。
1621 10
|
Oracle 关系型数据库 MySQL
深入OceanBase内部机制:多租户架构下的资源隔离实现精讲
深入OceanBase内部机制:多租户架构下的资源隔离实现精讲
|
缓存 小程序 API
小程序实现登录持久化
小程序实现登录持久化
359 0
|
Linux
linux下ffmpeg安装
<p style="border: 0px; font-family: Muli, sans-serif; font-size: 15px; margin-top: 0px; margin-bottom: 1.5em; outline: 0px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline; word-wrap
9834 0