matlab搭建的应用层架构逻辑,软件设计的三层架构

1:三层架构是什么?

三层架构是一个分层式的软件体系架构设计理念。

把软件架构分为三层;

1:UI层   (user interface layer)  界面层

2:BLL层 (business logic layer)      业务逻辑层

3:DAL层 (data access layer)         数据访问层

其实就是项目的三个部分。

传统的项目,广义上需要关注的是客户端和服务端;相当于是一个两层架构。

客户端:  包含界面、业务逻辑

服务端:  包含数据

这样的设计理念的最大的缺点是:

一旦服务端数据结构或数据名发生变化,客户端需要在很大范围内做改变,以适应新的数据。比如说服务端的一个数据名因故改变了,那么客户端代码中所有用到该条数据的地方都需要做改变。

9c7c11cc5a92

三层架构的设计理念,把一个软件分为三个部分:

UI层:就是展现给客户的界面,用于展示用户输入以及服务端返回的数据;交互式操作界面中,用户输入的数据和想要的数据展示。

业务逻辑层: 桥梁层,用户输入的数据通过业务逻辑层的处理发给数据层;数据层返回的数据通过业务逻辑层发送给界面展示。常做的操作是验证、计算、业务规则等。

数据访问层:主要管理数据,实现对数据的增删改查等操作。把业务逻辑层提交的用户输入的数据保存,把业务逻辑层请求的数据返回给业务逻辑层。

9c7c11cc5a92

2:为什么要分三层架构?

三层架构的重要指导原则就是:高内聚、低耦合。

所以使用三层架构的最大目的就是:解耦。

所谓解耦就是软件各部分各司其职,一方的变化基本不会影响到另一方,只需要在对接初稍作修改就可以了。

3:三层架构怎么实现?

理论上三层架构的实现,在项目架构上是:

view

business

data

三个层。

view目录结构里面实现页面UI绘制,是页面的代码实现,页面里数据的来源和去向都是business;

business目录结构里面是把页面输入数据发送向data层,把data层返回数据返回给view展示;

data目录结构里面是对数据的处理,包括数据的增添改删。

4:三层架构与mvc

三层架构与mvc看似相似,

本质区别是,三层架构是一种软件架构设计理念,适用于所有项目;

而mvc只是UI层的一种细化。把UI层划分为M -V- C三个模块。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql null 0 空,MySQL的空值和NULL区别

从本质上区别:1、空值不占空间2、null值占空间通俗的讲:空值就像是一个真空转态杯子,什么都没有,而null值就是一个装满空气的杯子,虽然看起来都是一样的,但是有着本质的区别。例子:创建一个test…

mysql 数据库中数据去重,oracle数据库中如何达到像mysql数据库中group by 那种去重的效果..求大神解答...

满意答案oracle和mysql,group by是由区别的。oracle的gruop by 后跟的必须是select查询出的字段而且group by语句中select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中聚合函数比如:sum(列名) 求和ma…

强制关机对电脑的影响_笔记本电脑需要每天关机吗?长期开机对电脑有影响么?...

笔者之前写过一些选购笔记本的文章,就有不少网友问了这个问题:笔记本电脑需要每天关机么?一直开着有没有问题?这里说得一直开着是选择了合盖睡眠(或者休眠)的方式。使用时翻开笔记本盖子就可以工作,工作做完后合上盖子…

matlab 矩阵与向量乘,matlab问题,关于矩阵向量的乘问题

问题描述:matlab问题,关于矩阵向量的乘问题mxwtbx*T;mywtby*T;mzwtbz*T;%%%通过四元素解微分方程pmx.^2my.^2mz.^2;//这个地方有问题,我在下面说a1-p/8;b0.5-p/48;c(1)b*(a*q(1)/b-mx*q(2)-my*q(3)-mz*q(4));//提示这里有问题.c(2)b*(mx*q(1)a*q(2)/bmz*q(3)-my*q(4…

python关闭exe程序_Win 10 中使用 Python 碰到的奇怪现象

优质文章,第一时间送达!作者:流光飞舞来源:https://shuhari.dev/blog/2019/11/win10-store-python最近在使用 Python 的时候发生了很奇怪的现象:从命令行执行 python.exe并不会进入 REPL,似乎也没有其他反应…

Matlab语音采集与读写程序,基于MATLAB的语音信号录制采集和分析的程序设计

理 论广 角 ● I 基于 MATLAB的语音信号录制采集和分析的程序设计 刘 晓炯 (西北民族大学电气工程学院 甘肃 兰州I 730030) [摘 要]语音信号处理技术是语音处理领域中新近发展起来的一个学科分支,MATLAB是一个数据分析和处理功能十分强大的工程使用软件,…

mulitpartfile怎么接收不到值_手机有时接收不到微信消息通知,怎么办?超全解决方案...

不知道大家在使用微信的过程中有没有遇到以下情况,在自己看视频或者刷其他网页的时候,没有接收到微信的任何通知和提示的消息。等到你进入微信页面后,突然发现有很多未读信息。这种情况时有发生,很多人都反应说微信接收消息总是会…

生活 list.php,list.php

require_once config.php;// 接收传来的分类id$categoryId$_GET[categoryId];//3// 查询当前分类下的文章// echo $categoryId;// 连接数据库$connectmysqli_connect(DB_HOST,DB_USER,DB_PWD,DB_NAME);// 写sql$sql"select p.id,p.title,p.feature,p.content,p.created,p.…

苹果呼叫转移设置不了_怎么设置别人电话打不进来

您可以尝试输入【**21*888888#】并按下拨打键,开启本机的呼叫转移功能,在开启之后别人拨打您的电话会转移到888888这个空号,实现别的电话无法打入的效果。以下就是相关的步骤介绍:1、只需要在安卓或者苹果iOS 11系统的手机的拨号界…

apache php日志配置,HTML_初学:apache与php基本配置,1、APACHE的日志主要分为“ - phpStudy...

1、APACHE的日志主要分为“错误日志”与“访问日志”。2、apache错误日志目录的设置:/etc/apache2/apache2.conf 约170行左右ErrorLog /var/log/apache2/error.log 错误日志将保存在error.log中ErrorLog /dev/null / 将错误日志指向空设备,那么就等于…

jdk db版本_企业视频会议系统音视频通话EasyRTC-SFU版本研发中更合适的配置文件格式-TOML配置介绍 - TSINGSEE...

在 EasyRTC-SFU 版本的开发过程中,很多配置需要存储在配置文件中。开发人员经常使用的配置文件有 ini、json、xml、yaml 等格式,在综合分析各种文件格式的优劣后,我们最终确认使用 toml 格式作为配置文件格式。ini 文件格式是最传统的配置文件…

PHP开源管理系统 Gms,GMS 一个成熟的gms系统,拥有基本的权限管理和分类,后台很好 Windows Develop 249万源代码下载- www.pudn.com...

文件名称: GMS下载 收藏√ [5 4 3 2 1 ]开发工具: PHP文件大小: 14012 KB上传时间: 2016-01-03下载次数: 0提 供 者: 马继康详细说明:一个成熟的gms系统,拥有基本的权限管理和分类,后台很好-a good gms system文件列表(点击判断是否您需要的文件&a…

numpy序列预处理dna序列_个人隐私DNA亲子鉴定序列

个人隐私DNA亲子鉴定序列DNA亲子鉴定是基于医学,法律或个人原因解决亲子关系的最先进,最准确的方法。周转时间:凭借先进的DNA技术,亲子鉴定准确,快速且价格合理。现在可以在样品到达实验室后的3至7个工作日内确定亲子关…

php如何统计数组的个数,如何用php统计数组元素的个数(附代码)

这篇文章主要介绍了php统计数组元素个数的方法的相关资料,需要的朋友可以参考下count():对数组中的元素个数进行统计;sizeof():和count()具有同样的用途,这两个函数都可以返回数组元素个数.可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一…

usb接口驱动_关于电脑上的USB接口,都在这儿了!

美美的周末时光到来了!今天给大家科普一点电脑的常识。想必大家在日常使用电脑的时候,会经常看到电脑右侧有一些不同的借口,看着像USB借口,但是标志却很奇怪,那到底为什么呢?还有,这些接口是2.0…

oracle将字符串转化为blob,oracle String类型转换成blob类型插入

CERT_1以前是varchar(3000),现在的类型是blob类型,做数据库迁移时,使用导入工具不能直接导入,所以使用SQL,下面是SQLdeclaredirections BLOB;amount BINARY_INTEGER;offset INTEGER;first_direction VARCH…

kibana 查看索引库中文档个数_百度索引量是什么意思?和百度收录量的区别。...

百度索引量表示所有网名最多会从百度看到的这个网站页面数量,用官方的话来说就是可以被搜索用户搜索到的网站数据库。 百度索引量是什么意思? 百度索引量表示所有网名最多会从百度看到的这个网站页面数量,用官方的话来说就是可以被用户搜索到…

oracle form中实现隐藏,Oracle Form数据块实现同时只有一个人锁定修改数据

在上一篇中文章中,如果建立了数据块的四个触发器,并在触发器中调用了程序单元中对应数据块名的包,则在这个包中还需调用专门用于实现插入行、锁定行、更新行、删除行的包MAIN_PVT。在这个包MAIN_PVT中主要调用的是数据块中的存储过程实现插入…

blob 在线解码_「沙发管家」腾讯极光盒子3Pro发布!4+32G内存8K解码

10月22日,腾讯携手创维数字,推出了首款 8K 高清电视盒子——腾讯极光盒子 3Pro 。这款产品的定位是“8K 星耀旗舰家庭娱乐主机”,盒子外观是高级黑加上一些不规则形状设计,磨砂材质,边缘还有一道蓝色的荧光&#xff0c…

oracle 重复的记录数,如何确定Oracle数据库表中重复的记录

作为一个Oracle数据库开发者或者DBA,在实际工作中经常会遇到这样的问题:试图对库表中的某一列或几列创建唯一索引时,系统提示ORA-01452:不能创建唯一索引,发现重复记录。下面我们以表code_ref为例来讨论这个问题及其解…