服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 编程技术 - 六种最关键的架构模式

六种最关键的架构模式

2024-01-05 14:23小技术君 编程技术

有许多广泛使用的架构模式。然而,其中六种非常常见且关键,这并非偶然。以下是这些模式,为什么你应该使用它们,以及何时使用它们。

有许多广泛使用的架构模式。然而,其中六种非常常见且关键,这并非偶然。以下是这些模式,为什么你应该使用它们,以及何时使用它们。

六种最关键的架构模式

1.模型-视图-控制器(MVC)

这是最早采用并广泛使用的架构模式之一。其主要目标是将应用程序的数据、用户界面和控制逻辑分离为三个相互连接的组件。模型管理数据和逻辑,视图显示信息,控制器连接模型和视图,处理用户输入。使用场景: 适用于具有明确数据处理和UI分离的Web应用程序。

2.模型-视图-Presenter(MVP)

这种模式从MVC演变而来,旨在通过将视图与模型解耦,通过Presenter充当中间人来解决MVC在事件驱动环境中的缺点。模型管理数据,视图显示数据并将用户命令发送给Presenter,而Presenter从模型检索数据并将其呈现给视图。使用场景: 侧重于测试和UI逻辑的应用程序,如Android应用程序。

3.模型-视图-Intent(MVI)

这是一种采用单向数据流的响应式架构,确保在给定状态下,UI保持一致。模型表示状态,视图反映视图状态,而意图表示更改状态的用户交互。广泛用于具有状态一致性关注的Reactive应用程序或框架,如使用RxJava的应用程序。

4.模型-视图-ViewModel(MVVM)

MVVM出现是为了解决UI开发中的复杂性,提倡采用一种无需了解UI组件的ViewModel处理视图逻辑的方法。在这种情况下,模型管理和显示数据,而ViewModel保存和包含与UI相关的数据。这个模型非常适用于UI丰富的应用程序或具有数据绑定的平台,如使用LiveData的WPF或Android。

5.模型-视图-ViewModel-Coordinator(MVVM-C)

在MVVM的基础上引入Coordinator来处理导航,将其与View和ViewModel解耦。这个模型非常适用于较大的应用程序,特别是在IOS上,复杂的导航需要与视图逻辑分离。

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

这是一种类似于Clean architecture的模块化架构。它强调可测试性和单一职责原则,通过将应用程序逻辑分解为不同的组件。在这个模型中,视图显示参数发送的内容,互动器包含每个用例的业务逻辑。Presenter包含准备内容的视图逻辑,实体包含主要模型对象,路由器包含导航逻辑。这个模型非常适用于复杂的应用程序,特别是在IOS上,需要模块化、可测试性和清晰度。

原文地址:https://mp.weixin.qq.com/s?__biz=MzU0NDMzMjY5Ng==&mid=2247488773&idx=1&sn=f995c02ee875fc154c747e36d0182de1

延伸 · 阅读

精彩推荐
  • 编程技术5个ChatGPT功能帮助你提升日常编码效率

    5个ChatGPT功能帮助你提升日常编码效率

    ChatGPT 作为最快完成亿活用户的应用,最近真的是火出天际了。今天分享5个 ChatGPT 功能,来提升我们的日常工作以及如何使用它提高代码质量...

    Python数据挖掘8312023-05-23
  • 编程技术详解git的分支与合并的两种方法

    详解git的分支与合并的两种方法

    这篇文章主要介绍了详解git的分支与合并的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    kingdom_wp5352020-07-23
  • 编程技术大白话设计RocketMQ延迟消息

    大白话设计RocketMQ延迟消息

    RocketMQ延迟消息的设计方式,是一种兼顾了性能和业务的优秀设计。本文聊了RocketMQ延迟消息的使用、原理、解答了部分疑问。...

    不焦躁的程序员10662023-12-27
  • 编程技术Git提交日志修改方法实例汇总

    Git提交日志修改方法实例汇总

    这篇文章主要介绍了Git提交日志修改方法实例汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    陌鉎こ城sHi3312020-09-20
  • 编程技术HarmonyOS ArkUI之自定义组件侧滑菜单(JS)

    HarmonyOS ArkUI之自定义组件侧滑菜单(JS)

    鸿蒙这次API7更新除了新增TS声明式开发之外,还有JS开发也增加了很多API,JS开发自定义组件越来越方便了。本文介绍最新出的插槽用法,实现侧滑菜单、支...

    鸿蒙社区5232021-11-24
  • 编程技术如何利用ChatGPT帮你写代码?

    如何利用ChatGPT帮你写代码?

    最近爆火的ChatGpt相信大家都不陌生,听说它还能写代码,而且能力不凡。作为合格的嵌入式软件工程师,必须得充分利用起来!...

    嵌入式与Linux那些事11872022-12-12
  • 编程技术数据结构与算法之链表相交,找交点

    数据结构与算法之链表相交,找交点

    给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。...

    代码随想录5192022-01-10
  • 编程技术后起之秀Svelte和Solid值得花时间学习吗

    后起之秀Svelte和Solid值得花时间学习吗

    存在必有道理,Svelte和Solid在国外那么受欢迎不是没有原因的,能在内卷的前端框架市场杀出一条血路,占据一席之地,相信必有适合它们的应用场景和优...

    村长学前端8722022-09-22