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

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

系统开发模型


  • 系统开发模型,即系统架构,是指整合应用系统程序大的结构。经常提到的系统结构有两两种:三层架构和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学生系统管理系统




相关文章
网络基础之三
网络基础之三
95 0
|
7月前
|
机器学习/深度学习 算法 Java
【专栏】理解各种范式的优缺点对开发者适应技术环境和解决问题至关重要。
【4月更文挑战第27天】本文探讨了两种主要编程范式——面向对象编程(OOP)和函数式编程(FP)。OOP通过对象和类实现软件设计,强调封装、继承和多态,但过度继承可能导致复杂性。FP基于数学函数,注重无副作用和不可变性,提供高阶函数等特性,简化并发处理,但学习曲线较陡峭。选择编程范式应考虑项目需求和技术背景,现代语言趋向融合多种范式,如Java和Scala。理解各种范式的优缺点对开发者适应技术环境和解决问题至关重要。
136 2
|
7月前
|
存储 安全 API
构建安全可靠的系统:第一章到第五章
构建安全可靠的系统:第一章到第五章
272 0
|
4月前
|
自然语言处理 前端开发 JavaScript
前端进阶必读:JS闭包深度解析,掌握这一特性,你的代码将焕然一新!
【8月更文挑战第23天】闭包是JavaScript的一项高级功能,让函数能够访问和操作外部函数作用域中的变量。本文深入解析闭包概念、组成及应用场景。闭包由函数及其词法环境构成,通过在一个函数内定义另一个函数来创建。它有助于封装私有变量、维持状态和动态生成函数。然而,不当使用闭包可能导致内存泄漏或性能问题。掌握闭包对于实现模块化代码和成为优秀前端开发者至关重要。
44 0
|
4月前
|
运维 网络协议 API
入门网络,少不了这份详细的网络基础学习指南!
入门网络,少不了这份详细的网络基础学习指南!
|
算法 安全 测试技术
嵌入式软件测试笔记2 |TEmb方法概述
嵌入式软件测试笔记2 |TEmb方法概述
144 0
|
SQL 前端开发 JavaScript
今天来讨论很简单的问题:如何选择编程语言呢?
今天来讨论很简单的问题:如何选择编程语言呢?
106 2
国外经典神作:领域驱动设计软件核心复杂性应对之道手册限时阅读
相信领域驱动设计这个对有些小伙伴来说很陌生,领域驱动设计(Domain Driven Design,DDD)自诞生以来已有十几年时间,这门本已步入老年的方法学却因为微服务的兴起而焕发了第二春。并不是微服务拯救了领域驱动设计,是因为领域驱动设计一直在坚硬的生长,然而看起来,确乎因为微服务,领域驱动设计才又焕发了青春。
国外经典神作:领域驱动设计软件核心复杂性应对之道手册限时阅读
|
机器学习/深度学习 编解码 并行计算
绕不开的模型部署?不怕,我们手把手教你学会!
在软件工程中,部署指把开发完毕的软件投入使用的过程,包括环境配置、软件安装等步骤。类似地,对于深度学习模型来说,模型部署指让训练好的模型在特定环境中运行的过程。相比于软件部署,模型部署会面临更多的难题
2150 0
绕不开的模型部署?不怕,我们手把手教你学会!
|
设计模式 算法 Java
《刻意练习》:以学习编程为例
《刻意练习》是一本神奇的魔法书,它用大量的事实案例和数据来证明了刻意练习能给一个人带来的巨大改变。更为难能可贵的是,它不仅仅只是介绍刻意练习的好处,还给读者介绍了刻意练习的方法和注意事项,可以说是干货满满的一本书。
455 0
下一篇
DataWorks