再理下系统分层架构模式

MVC是横向分工;三层架构,是纵向分层。

在大多数架构图中,MVC被画成三角形,View是使用者能够看到并操作的层(可能是Web页面,也可能是GUI),Controller是处理各种操作请求的核心,Model是用于保存各种数据,并且会影响View的显示结果。

而三层架构,通常会被画成上中下三层,上层是前端;中层是业务逻辑;底层是数据存储。

从这个介绍来看,MVC与三层架构的确似乎存在对应关系。在很多简单项目中,我们可以将业务逻辑写在Controller里,而保存数据的逻辑也无非是数据库的表与Mode的简单对应而已。

但是,随着项目越来越复杂,我们发现业务逻辑已经非常复杂,把所有的代码写在Controller里,是一种糟糕的实践,因此:我们将关键的业务逻辑抽取出来,形成一个独立的业务逻辑层。而且,这一层往往以某种Service API的方式,被Controller调用。

另一方面,我们也发现数据越来越多,越来越大,越来越复杂。简单的ORM已经不够用了,必须编写更加独立、通用的数据访问层。这时候,就需要改写原来的Model,对于上层应用而言,使用方式保持不变。

还有一些重要的技术发展,产生在前端领域,尤其是We前端的JS框架、CSS、HTML5等等技术,使得在前端,出现了完整的“前端MVC”,或者现在叫“前端MVVM”了。

大概是这么一个发展的路径,要详细谈的话,就太多了。

时间: 2024-10-08 13:58:27

再理下系统分层架构模式的相关文章

什么是分层架构模式

分层(Layer)模式是最常见的一种架构模式. 分层描述的是这样一种架构设计过程:从最低级别的抽象开始,称为第1层.这是系统的基础.通过将第J层放置在第J-1层的上面逐步向上完成抽象阶梯,直到到达功能的最高级别,称为第N层. 因而分层模式就可以定义为:将解决方案的组件分隔到不同的层中.每一层中的组件应保持内聚性,并且应大致在同一抽象级别.每一层都应与它下面的各层保持松散耦合. 分层模式的关键点在于确定依赖:即通过分层,可以限制子系统间的依赖关系,使系统以更松散的方式耦合,从而更易于维护. 对系统

三高系统常用架构模式

总结一下三高(高性能.高并发.高可用)系统在架构时常见的模式及技术. 面向互联网的三高系统,最关注的软件质量属性是:性能.可用性.伸缩性.扩展性.安全性. 而构建此类系统,最常见的架构模式有:横向分层.纵向分割.分布式化.集群化.使用缓存.使用异步模式.使用冗余.自动化(发布.部署.监控). 具体来说,可以在不同层次常用的技术有: 前端架构 浏览器优化技术:合理布局,页面缓存,减少http请求数,页面压缩,减少 cookie 传输. CDN DNS负载均衡 动静分离,静态资源独立部署 动态图片独

软件架构模式-分层架构II

参考:http://www.ruanyifeng.com/blog/2016/09/software-architecture.html https://blog.csdn.net/bboyfeiyu/article/details/45136299 https://www.cnblogs.com/zdxster/p/5305155.html   1. 什么是分层架构 分层架构是一种很常见的架构模式,它也叫N层架构.这种架构是大多数Jave EE应用的实际标准,因此很多的架构师,设计师,还有程序

软件架构模式之分层架构

本章内容出自<软件架构模式>第一章,该书由 开发技术前线 项目组成员翻译,更多内容请访问 <软件架构模式>中文版pdf . 简介 对程序员来说很常见一种情况是在没有合理的程序架构时就开始编程,没有一个清晰的和定义好的架构的时候,大多数开发者和架构师通常会使用标准式的传统分层架构模式(也被称为多层架构)--通过将源码模块分割为几个不同的层到不同的包中.不幸的是,这种编码方式会导致一系列没有组织性的代码模块,这些模块缺乏明确的规则.职责和同其他模块之间的关联.这通常被称为架构大泥球.

移动App设计之分层架构+MVC(转)

场景分析:我们知道,一个移动设备的应用大多与网络有关,也就是说,我在移动设备上看到的数据,一般都是从Server上”拉“过来,显示在我们的移动设备(ios androiud.wpohone等)上.那我们就这个”拉“的过程分析,拉什么样的数据?去哪里拉?拉过来的数据怎么处理?用编程(开发)的思维看,就是定义什么实体(业务实体).发送请求.解析数据.当然这也只是大体的过程.但从软件架构设计上讲,定义实体.发送请求.解析数据都是具有单独意义的模块.那我们怎么处理这些模块呢? 场景应用:sina wei

软件架构之分层架构理解

分层架构特定场景:分层架构是一种很常见的架构模式,它也叫N层架构.分层架构适用于一个集成不同功能的系统,当我们需要把很多不同的代码集起来的时候,这种模式提供了最合理的结构.能让我们的代码有足够的灵活性去应对需求改变.当系统本身不负责或者可预期的修改很少时,则不适合用分层架构,因为这样可以增加很多不必要的代码,陷入过度设计的泥坑.不过分层架构模式是一个稳定的通用模式,这使得它成为大部分应用程序的首选,特别是当你不确定使用哪个架构的时候.没有任何一种架构模式是万能的,所以每个模式都必须有"适应场景&

iOS架构模式--解密 MVC,MVP,MVVM以及VIPER架构

在 iOS 中使用 MVC 架构感觉很奇怪? 迁移到MVVM架构又怀有疑虑?听说过 VIPER 又不确定是否真的值得切换? 相信你会找到以上问题的答案,如果没找到请在评论中指出. 你将要整理出你在 iOS 环境下所有关于架构模式的知识.我们将带领大家简要的回顾一些流行的架构,并且在理论和实践上对它们进行比较,通过一些小的例子深化你的认知.如果对文中提到的一些关键词有兴趣,可以点击连接去查看更详细的内容. 掌控设计模式可能会使人上瘾,所以要当心,你可能会对一些问题清晰明了,不再像阅读之前那样迷惑,

大型网站技术架构(二)--架构模式

大型网站技术架构(一)--大型网站架构演化 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复工作. 所谓网站架构模式即为了解决大型网站面临的高并发访问.海量数据.高可靠运行灯一系列问题与挑战.为此,在实践中提出了许多解决方案,以实现网站高性能.高可靠性.易伸缩.可扩展.安全等各种技术架构目标. 1.分层 分词是企业应用系统中最常见的一种架构牧师,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后

iOS - 架构模式 - 解密 MVC、MVP、MVVM、VIPER架构

在 iOS 中使用 MVC 架构感觉很奇怪? 迁移到MVVM架构又怀有疑虑?听说过 VIPER 又不确定是否真的值得切换? 相信你会找到以上问题的答案,如果没找到请在评论中指出. 你将要整理出你在 iOS 环境下所有关于架构模式的知识.我们将带领大家简要的回顾一些流行的架构,并且在理论和实践上对它们进行比较,通过一些小的例子深化你的认知.如果对文中提到的一些关键词有兴趣,可以点击连接去查看更详细的内容. 掌控设计模式可能会使人上瘾,所以要当心,你可能会对一些问题清晰明了,不再像阅读之前那样迷惑,