三层架构---理论篇
What is it?
每当我们接触一个新名词,首先要问问自己“它是什么”,这样才会有更强烈的好奇心与求知欲去弄明白它。
三层架构,由它的名字通俗易懂的理解就是三个层次的结构。那么,在我们的软件体系架构设计中,三层架构是指什么呢?通常就是指将整个业务划分为三层:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。
数据访问层:它在整个业务中的作用就是访问数据系统中的文件,直接与数据库打交道,实现对数据库中数据的增删改查操作,也就是SQL语句的拼接需要在这一层完成。
业务逻辑层:它的主要作用就是将用户输入的信息进行判断,然后进行甄别处理。也就是我们在编码过程中常用的 if-else 判断需要在这里完成。
显示层:它的主要功能就是接收用户传输的数据和显示数据,直接与用户打交道,可以在系统运行时提供人机交互式的操作界面。接收用户的输入信息和显示数据业务需要在这一层完成。
Why are we using it?
在这之前的项目中没有应用架构,确切的说是不知道有这个东西,程序依然可以跑起来。既然如此,我们为什么还要使用三层架构呢?是它更简单、更容易还是其他的什么原因呢? 这就需要我们了解一下三层架构有哪些特点了,或者是应用三层架构设计软件系统,有哪些好处。
应用三层架构,最根本的目的就是合理设计软件系统模块,把握面向对象编程的思想-----高内聚低耦合。区分层次的目的就是为了实现“高内聚低耦合”的思想,降低层与层之间的依赖。三层架构软件系统为用户的数据传输、提取、存储创造了条件。在应用数据时,信息划分架构开发项目,对各层之间的工作职责进行清晰地规划,这样就降低了软件系统的维护风险。具体来说,它有以下的优点:
1、开发人员根据业务需求,可以只关注整个结构中其中一层。
2、可以很容易的用新需求的实现来替换原有层次的实现。
3、降低层与层之间的依赖。
4、有利于标准化。
5、有利于各层逻辑的复用。
6、结构更加的明确。
7、有利于后期维护 和升级。在软件的后期维护过程中,能降低维护时间和成本。
8、避免显示层直接访问数据层,显示层只和逻辑层直接相关,提高了数据的安全性。
9、有利于系统的分散开发,团队协作,每一层可以由团队中不同的成员来开发,很好的提高了系统的开发速度。
10、为系统的移植提供了方便。
How do we use it?
既然分层架构有这么多的好处,在我们开发过程中当然是离不开它了。以前的小型项目中,根据用户输入的信息可以直接访问数据,而现在需要经过一个中间层。那如何实现数据的传输呢?依靠参数。参数实现了用户输入的数据与各层之间数据的传输。在这里我们还需要一个实体层。在实体层中定义数据库中的字段,为保护字段,我们要设置相应的属性,依靠属性进行数据的传递。如果仅满足这些条件,是不是就能实现业务需求了呢?No。仅把这些层创建出来,它们之间本没有直接的联系,那如何将它们之间形成联系呢?这就需要我们给它们添加引用了。
这三层之间的引用关系,都是引用与 它直接相关的那一层。D层引用实体层,B层引用D层,U层引用B层;在B层和U层中,由于都需要使用实体,所以也将实体层进行引用。这样各层之间就有了一定的联系了,形成一个整体的架构,不是孤立的某一层了。
本文简要介绍了一下三层架构,理论知识是实践的基础。下一篇博客小编将为您带来应用三层架构的小实例。通过实例,进一步理解各层的作用,参数是如何传递的,三层是如何实现业务需求的。
三层架构---理论篇相关推荐
- “七层架构”---理论篇
前段时间在做项目的过程中运用到了三层架构.最近在做项目过程中,又将三层架构进行扩充至七层.下面小编为您分享这延伸出来的"七层". "七层"包括哪些层? &quo ...
- 三层架构实战篇—系统登录实例
上一篇博客,介绍了三层的一些基本理论,但是学习光有理论还是不行滴!马克思不也说过了吗?实践是检验真理的唯一标准! 所谓的三层分为物理上的三层和逻辑上的三层.物理上的三层包括:客户端(PC).应用服务器 ...
- asp.net三层架构制作新闻管理_程序员蜕变为架构师必须要知道的「架构理论」...
架构目的和指标 架构目的: 架构设计的主要目的是为了解决软件系统复杂度带来的问题,是用最小的人力成本来满足需求的开发和响应需求的变化,用最小的运行成本来保障软件的运行.让软件达到"高内聚.松 ...
- 小眼游戏架构:UI篇:三层架构(UI层)
上一篇我们分析了UI的架构原则以及为什么要这么架构的一些原因,这篇会具体实现架构的方方面面,东西会有点多.我辈求道,岂能求快! 为了避免框架的干扰我们先来配置一下开发环境. LuaFrameWork的 ...
- Python的三层架构(基础篇)
在Python的代码编写中,有一个简单的架构,即三层架构,其就是为了使程序达到高内聚低耦合.现在为了学习机器学习,对Python进行简单的学习,此博客作为学习的记录,如有错误,敬请指出. 三层架构分为 ...
- ASp.net 剖析三层架构
本文不是从理论的角度来探讨三层架构,而是用一个示例来介绍如何建设一个三层架构的项目,并说明项目中各个文件所处的层次与作用.写本文的目的,不是为了说明自己的这个方法有多对,别人的肯定不对,而是希望给那些 ...
- 三层架构-----实践篇-登录小实例
上一篇博客小编简单介绍了一下我们在软件开发过程中应用到的三层架构基本理论.光有理论还是远远不够的,只有真正的 在项目中实践过,才能更好地理解它的精髓所在.接下来小编以一个实现登录功能的小例子来展现三层 ...
- 你真的了解传统IT的集中式三层架构及主流开发技术选型?!
[引言] 最近在看一本书<未来架构 从服务化到云原生>,关于技术架构这部分,结合书中内容,有一些认知和感悟. 互联网的技术架构正在经历由集中式->分布式->云平台的发展历程中. ...
- 剪不断,理不乱——三层架构之抽象工厂加反射
三层架构前面已经介绍过了,浅谈三层架构.本篇文章主要介绍三层架构中加入抽象工厂和反射加配置文件.以机房收费系统的登录为例. 首先对机房收费系统进行分层,分为三层表示层,业务逻辑层,数据访问层.为了降低 ...
最新文章
- 厦门理工计算机研究生调剂,2018年厦门理工大学考研预调剂信息公布
- 数据存储之-SQLite数据库一
- VMware Linux下拖拽补丁vmtools的安装和卸载
- vue怎么给html元素加类选择器,Vue.js——获取Dom对象的类选择器名(className)
- 实验室最拼命的博士生,为什么却面临延毕?
- 价值199的wp移植Emlog主题模板PandaPRO
- 16 分频 32 分频是啥意思_CD4017是什么?十进制计数器分频器CD4017的逻辑功能呢?...
- Python学习入门3:编程零基础应当如何开始学习Python?
- Python实现立方体纹理映射
- 学习笔记之dns正反向解析区域,主从服务,子域授权,安全
- 做了 5 年运维,靠着这份监控知识体系,我从 3K 变成了40K | 原力计划
- System Center Configuration Manager 文档
- vb.net 教程 2-13 Windows API 函数
- meterpreter 监控桌面命令(screenshare)
- 汇编语言基础知识(二)
- 苹果系统服务器状态,苹果开发者中心app显示黄色状态详情介绍
- 打开网络连接三种方法
- ACPC2017游记
- mysql查看表存不存在
- 不用下载软件,免费将PDF文件缩小的方法分享
热门文章
- 提问的智慧 如何得到好的帮助(转)
- 用键盘来操纵鼠标指针(鼠标损坏时的应急措施)
- Spark Streaming 实现思路与模块概述
- ubuntu的xfce4的display只有一种分辨率选项
- spark-shell连接数据库java.sql.SQLSyntaxErrorException: Unknown databas
- ssh localhost免密码登录(转)
- LINUX 下编译 ffmpeg
- Jpeglib使用指南, 各种压缩包的压缩和解压方法, 开源社区分裂史
- cytoscape使用方法_7种方法 ,订制你的专属venn图!-代谢组学/蛋白组学研究
- python变量和运算符