三层架构(二)——为什么要用三层架构?

二、为什么要用三层架构?

1、分析

层次结构在现实社会中随处可见。记得有个笑话讲有个村长得意的向他的老婆吹牛:“全中国比我官大的只有四个人,乡长、县长、省长和国务院总理”,这个笑话体现了真实社会的分层现象,社会人群会分层,公司管理人员结构也会分层,

楼房是分层的,甚至做包子的笼屉也是分层的,虽然分层的目的各有不同,但都是为了解决某一问题而产生的,所以分层架构是为了解决某一问题而产生的解决方案。

社会分工的优势:让适合的人做自己最擅长的事情,缩短劳动时间,提高劳动效率。人尽其才,物尽其用。软件开发也一样,开发小项目,也许分层与不分层也许看不出多大的差别来,分层可能显得更加啰嗦,但是当开发一个复杂的项目时,分层的优势就显示出来了。

举个例子:我们重构机房收费系统,需要进行数据库的访问,在不分层的情况下,就会出现大量重复的代码,无非就是数据库的增、删、改、查,这些重复的代码可以适用于多个模块,就是字段名和数量不一样。光敲这些重复的代码就得花去我们不少的时间,何况我们的机房收费系统还只是一个不大的项目。如果是一个较大的项目呢?

每一个事物有优点必有缺点,分层架构的缺点主要有以下两点:

1)、分层也一样,如果不分层,很多业务可以直接访问数据库,获得数据,而现在却必须通过中间层来访问,从而降低了系统运行性能。

2)、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。

不过分层架构的利大于弊。

2、结束语

在软件体系架构中,分层式结构是比较容易懂的也是最常见的一个结构,而三层结构又是分层结构里面最常见的一种分层方式,也是Microsoft推荐的分层式结构。分层式结构还有其他模式例如MVC,了解和熟悉三层架构之后,学习其他架构会显得比较容易,让我们先从最容易理解的学起。

三层架构(二)——为什么要用三层架构?,布布扣,bubuko.com

时间: 2024-10-13 22:00:53

三层架构(二)——为什么要用三层架构?的相关文章

二、ELKStack集群架构设计

一.ELKStack介绍与入门实践 二.Elasticsearch 集群架构图 服务器配置:Centos6.6 x86_64 CPU:1核心 MEM:2G (做实验,配置比较低一些) 注:这里配置elasticsearch集群用了3台服务器,可以根据自己的实际情况进行调整. 三.开始安装配置nginx和logstash 注:这里使用yum安装,如果需要较高版本的,可以使用编译安装. 在10.0.18.144上操作,10.0.18.145配置方式和144是一样的. 1.安装nginx 配置yum源

更多免费初级中级高级大数据java视频教程下载 加(微***信((号keepper,请备注java或扫下面2二3维4码架构师148讲视频教程(71-80讲)

更多免费初级中级高级大数据java视频教程下载 加(微***信((号keepper,请备注java或扫下面2二3维4码架构师148讲视频教程(71-80讲)java视频教程第71节:ActiveMQ入门和消息中间件.avijava视频教程第72节:JMS基本概念和模型.avijava视频教程第73节:JMS的可靠性机制.avijava视频教程第74节:JMS的API结构和开发步骤.avijava视频教程第75节:Broker的启动方式.avijava视频教程第76节:ActiveMQ结合Spri

Re:从0开始的微服务架构--(二)快速快速体验微服务架构?--转

原文地址:https://mp.weixin.qq.com/s/QO1QDQWnjHZp8EvGDrxZvw 这是专题的第二篇文章,看看如何搭建一个简单模式的微服务架构. 记得好久之前看到一个大牛说过:如果单体架构都搞不好,就别搞微服务架构.乍一看,这句很有道理,后来发现这句话是不太对的,因为微服务架构的目的就是为了降低系统的复杂性,所以 微服务架构应该比单体架构更简单.更好实践才对. 这篇文章,我们就分享一下如何搭建一个 简单模式 的微服务架构. 什么是微服务架构的简单模式? 相对于大型互联网

解析微服务架构(二):融入微服务的企业集成架构

上一篇文章介绍了微服务架构的起源.定义.通用特性.常见概念误区.微服务架构与SOA架构比较.微服务架构收益以及企业引入微服务架构的策略. 本文将介绍融入微服务的企业集成架构的演进,并描述交互式系统的微服务模式及相关技术决策,然后给出了一个具体的微服务架构业务应用的例子. 交互型系统(System of Engagement)与记录型系统(System of Record) 随着移动互联网的快速发展,企业除了需要提供传统核心IT系统能力之外,还需提供客户与合作伙伴友好型的以交互为重点的创新及交互式

Android App的设计架构:MVC,MVP,MVVM与架构经验谈

来源: Android App的设计架构:MVC,MVP,MVVM与架构经验谈 和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于App的架构如何设计: 我的App需要应用这些设计架构吗? MVC,MVP等架构讲的是什么?区别是什么? 本文就来带你分析一下这几个架构的特性,优缺点,以及App架构设计中应该注意的问题. 1.架构设计的目的 通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合.这样做的好处是使得程序在开发的过程中,开发人员

架构设计三部曲之如何写架构设计说明书

架构设计是需求分析到软件实现的桥梁,也是决定软件质量的关键.编制架构设计说明书是开发人员向架构师转变必定会经历的过程.在架构师整个的成长过程中,必定会经历编制架构设计说明书.评审架构设计说明书以及根据业务需求分析设计系统架构的三个过程.作为一个架构师,我想尝试一下根据这三个过程对不同能力需要,写一次系列文章,包括<架构设计三部曲之如何写架构设计说明书>.<架构设计三部曲之如何评审架构设计说明书>以及<架构设计三部曲之如何做架构设计>,一来可以帮助自己整理思路,重新审视架

.NET应用架构设计—重新认识分层架构(现代企业级应用分层架构核心设计要素)

阅读目录: 1.背景介绍 2.简要回顾下传统三层架构 3.企业级应用分层架构(现代分层架构的基本演变过程) 3.1.服务层中应用契约式设计来解决动态条件不匹配错误(通过契约式设计模式来将问题在线下暴露出来) 3.2.应用层中的应用控制器模式(通过控制器模式对象化应用层的职责) 3.3.业务层中的命令模式(事务脚本模式的设计模式运用,很好的隔离静态数据) 4.服务层作为SOA契约公布后DTO与业务层的DomainModel共用基本的原子类型 5.两种独立业务层职责设计方法(可以根据具体业务要求来搭

iOS应用架构谈(一):架构设计的方法论

当我们讨论客户端应用架构的时候,我们在讨论什么? 其实市面上大部分应用不外乎就是颠过来倒过去地做以下这些事情: 简单来说就是调API,展示页面,然后跳转到别的地方再调API,再展示页面. 那这有什么好架构的? 非也,非也. ---- 包不同 <天龙八部> App确实就是主要做这些事情,但是支撑这些事情的基础,就是做架构要考虑的事情: 调用网络API.如何让业务开发工程师方便安全地调用网络API?然后尽可能保证用户在各种网络环境下都能有良好的体验? 页面展示.页面如何组织,才能尽可能降低业务方代

系统架构师-基础到企业应用架构-业务逻辑层

一.上章回顾 上章我们主要讲述了系统设计规范与原则中的具体原则与规范及如何实现满足规范的设计,我们也讲述了通过分离功能点的方式来实现,而在软件开发过程中的具 体实现方式简单的分为面向过程与面向对象的开发方式,而目前更多的是面向对象的开发设计方式.并且我们也讲述了该如何通过设计手段去分析功能点及设计分离 点,应该如何在设计的过程中分析的角度及如何去满足设计规范与原则.首先我们通过下图来回顾下上章要点: 二.摘要 本文将已架构的方式去分析分层结构中的业务层的设计,如何写出来内聚度,高耦合的业务逻辑层

系统架构师-基础到企业应用架构-系统设计规范与原则[上篇]1

一.上章回顾 在上篇中我们讲解了几类UML2.0语言新推出的建模图形,总体来说通过这些图形能更详细的将某类信息表达出来.在这里我们简单回顾上篇讲解的内容. 上图中已经简单介绍了上章讲述的内容,具体内容请看:系统架构师-基础到企业应用架构-系统建模[下篇]. 二.摘要 本章将主要的简单介绍在系统架构中的设计模式及相应规范准则.并结合相应的代码来说明如何遵循系统架构中的一些基本的设计规范及准则.而我们将在本文介 绍几类常用的设计规范,我们先来看看结构化设计的二个基本原则: 当然既然提出了基本的准则,