当前位置:首页 > 科技  > 软件

一图详解五种前端架构

来源: 责编: 时间:2023-12-04 17:25:10 355观看
导读无论是 iOS 还是 Android 开发,前端架构模式都是应用程序开发中最常用的模式之一。开发人员引入这些模式是为了克服早期模式的局限性。那么,它们有什么不同呢?又解决了什么问题呢?1. MVC (Model-View-Controller)MVC 是最

无论是 iOS 还是 Android 开发,前端架构模式都是应用程序开发中最常用的模式之一。开发人员引入这些模式是为了克服早期模式的局限性。那么,它们有什么不同呢?又解决了什么问题呢?6fb28资讯网——每日最新资讯28at.com

6fb28资讯网——每日最新资讯28at.com

1. MVC (Model-View-Controller)

MVC 是最古老的模式,可追溯到近 50 年前。6fb28资讯网——每日最新资讯28at.com

  • Model:封装了数据以及对数据的操作。
  • View:定义了数据的展示,并负责接收用户输入。
  • Controller:定义了对用户操作的响应。作为 Model 和 View 的连接,处理用户操作和数据上的改变。

MVC 模式的发明大大降低了前端数据和事件的管理难度。6fb28资讯网——每日最新资讯28at.com

MVC 模式的局限性在于所有事件都在 Controller 中处理,使得其比较臃肿。并且 View 和 Controller 的绑定过于紧密,不利于代码复用。6fb28资讯网——每日最新资讯28at.com

2. MVP (Model-View-Presenter)

在 MVP 模式中,View 和 Model 不能直接通信,必须通过 Presenter 来更新数据。这样,View 和 Model 就解耦了,可以作为单纯的展示层而存在。6fb28资讯网——每日最新资讯28at.com

MVP 模式由于需要做大量的数据同步工作,Presenter 也会和 View 绑定过于紧密。6fb28资讯网——每日最新资讯28at.com

3. MVVM (Model-View-ViewModel)

MVVM 由微软提出,用 ViewModel 的概念接管了 Presenter 的数据同步工作,这样省去了很多在 Presenter 里面的模版代码,架构和代码逻辑更加清晰。6fb28资讯网——每日最新资讯28at.com

4. MVVM-C (Model-View-ViewModel-Coordinator)

虽然 MVVM 省去了数据绑定的模版代码,但其在架构分层上只是用 ViewModel 取代了 Presenter,所以在实现时还是会有大量逻辑的堆砌,这常常被称为“垃圾抽屉”。并且 ViewModel 通常也不能在多个 View 间重用。这时我们可以加入一个 Coordinator 来协调 ViewModel 之间的跳转,来提高其复用性。6fb28资讯网——每日最新资讯28at.com

5. VIPER (View-Interactor-Presenter-Entity-Router)

VIPER 架构并不是基于 MVC 的改进,它是全新的架构模式,也是架构职责划分最明确的。然而其复杂度也是最大的,不适合较小规模的项目。6fb28资讯网——每日最新资讯28at.com

  • View:定义了数据的展示,并负责接收用户输入。
  • Entity:定义数据对象,但是不包括对数据访问和操作。
  • Interactor:负责从 Entity 获取数据,执行数据操作逻辑。这里的数据结构独立于界面显示。
  • Presenter:从 Interactor 获取数据,展示给用户。
  • Router:负责模块间的跳转。

总体看来,每种模式都需要处理以下 3 个问题:6fb28资讯网——每日最新资讯28at.com

  1. 数据源:一般从后端服务和存储中获得,其数据模型接近于后端。
  2. 数据绑定:将一个或多个数据源整形处理为符合前端展示需要的数据,其数据模型可以一步到位接近前端模型,或者可以是一个中间状态方便页面间复用。
  3. 事件响应:响应用户的操作,并对数据进行操作。

各个模式根据具体需求采用了不同的分层和解耦。我们需要根据需求来选取合适的架构模式。6fb28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-37659-0.html一图详解五种前端架构

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 探索 Python 编程世界:五个神奇库助力提升开发效率

下一篇: 解锁 C++ 并发编程的钥匙:探索 Atomic 变量

标签:
  • 热门焦点
  • 俄罗斯:将审查iPhone等外国公司设备 保数据安全

    iPhone和特斯拉都属于在各自领域领头羊的品牌,推出的产品也也都是数一数二的,但对于一些国家而言,它们的产品可靠性和安全性还是在限制范围内。近日,俄罗斯联邦通信、信息技术
  • vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • 女孩租房开2小时空调用完100元电费引热议:5级能耗惹不起 月薪过万电费也交不起

    近日,江苏苏州一女孩租房当天充值了100元电费,开着空调不到2小时发现电费已用完。对于为什么这个快,房东表示,电表坏了这种情况很多,之前也遇到过,给租客换
  • 这款新兴工具平台,让你的电脑效率翻倍

    随着信息技术的发展,我们获取信息的渠道越来越多,但是处理信息的效率却成为一个瓶颈。于是各种工具应运而生,都在争相解决我们的工作效率问题。今天我要给大家介绍一款效率
  • 一文掌握 Golang 模糊测试(Fuzz Testing)

    模糊测试(Fuzz Testing)模糊测试(Fuzz Testing)是通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。可以用来发现应用程序、操作系统和网络协议等中的漏洞或
  • 一文搞定Java NIO,以及各种奇葩流

    大家好,我是哪吒。很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,现百度,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~下次再遇到,
  • 腾讯VS网易,最卷游戏暑期档,谁能笑到最后?

    作者:无锈钵来源:财经无忌7月16日晚,上海1862时尚艺术中心。伴随着幻象的精准命中,硕大的荧幕之上,比分被定格在了14:12,被寄予厚望的EDG战队以绝对的优势战胜了BLG战队,拿下了总决
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 7月4日见!iQOO 11S官宣:“鸡血版”骁龙8 Gen2+200W快充加持

    上半年已接近尾声,截至目前各大品牌旗下的顶级旗舰都已悉数亮相,而下半年即将推出的顶级旗舰已经成为了数码圈爆料的主流,其中就包括全新的iQOO 11S系
Top