Rumah masalah biasa MVC、MVP和MVVM之间的区别是什么?

MVC、MVP和MVVM之间的区别是什么?

Apr 16, 2019 am 10:27 AM
mvc mvvm

区别:MVC表示“模型-视图-控制器”,MVP表示“模型-视图-演示者”,MVVM表示“模型-视图-视图模型”;MVP、MVVM都是由MVC衍生出的。MVC中,View会直接从Model中读取数据;MVP中,View并不直接使用Model。

MVC、MVP和MVVM之间的区别是什么?

MVC、MVP和MVVM是三种流行的设计模式。其中,MVC表示模型-视图-控制器,MVP表示模型-视图-演示者,MVVM表示模型-视图-视图模型;MVP, MVVM都是由MVC衍生出。所有这些设计模式大体上都有助于开发松散组合、易于测试和维护的应用程序。

一、MVC(Model-View-Controller)

MVC是比较直观的架构模式,最初生根于服务器端的Web开发,后来渐渐能够胜任客户端Web开发,能够满足其复杂性和丰富性。

1.png

MVC模式将应用程序划分为三个部分:

 ● Model: 模型(用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法)

 ● View: 视图(渲染页面)

 ● Controller: 控制器(M和V之间的连接器,用于控制应用程序的流程,及页面的业务逻辑)

MVC特点:

MVC模式的特点在于实现关注点分离,即应用程序中的数据模型与业务和展示逻辑解耦。在客户端web开发中,就是将模型(M-数据、操作数据)、视图(V-显示数据的HTML元素)之间实现代码分离,松散耦合,使之成为一个更容易开发、维护和测试的客户端应用程序。

用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View):

 1、View 传送指令到 Controller ;

 2、Controller 完成业务逻辑后,要求 Model 改变状态 ;

 3、Model 将新的数据发送到 View,用户得到反馈。

二、MVP(Model-View-Presenter)

MVP是把MVC中的Controller换成了Presenter(呈现),目的就是为了完全切断View跟Model之间的联系,由Presenter充当桥梁,做到View-Model之间通信的完全隔离方向。

2.png

MVP特点:

 ● M、V、P之间双向通信。

 ● View 与 Model之间不通信,都通过 Presenter 传递。Presenter完全把Model和View进行了分离,主要的程序逻辑在Presenter里实现。

 ● View 非常薄,不部署任何业务逻辑,称为”被动视图”(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

 ● Presenter与具体的View是没有直接关联的,而是通过定义好的接口进行交互,从而使得在变更View时候可以保持Presenter的不变,这样就可以重用。不仅如此,还可以编写测试用的View,模拟用户的各种操作,从而实现对Presenter的测试–从而不需要使用自动化的测试工具。

三、MVVM(Model-View-ViewModel)

MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。如果说MVP是对MVC的进一步改进,那么MVVM则是思想的完全变革。它是将“数据模型数据双向绑定”的思想作为核心,因此在View和Model之间没有联系,通过ViewModel进行交互,而且Model和ViewModel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上。

3.png

总结:

在MVC中,View会直接从Model中读取数据而不是通过 Controller;View和 Controller之间存在多对一关系。

在MVP中,View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部;View和Presenter之间是一对一关系。 

MVVM 模式基本上与 MVP 模式完全一致,唯一的区别是:MVVM采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

Atas ialah kandungan terperinci MVC、MVP和MVVM之间的区别是什么?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP melaksanakan seni bina MVVM: prinsip asas dan aplikasi PHP melaksanakan seni bina MVVM: prinsip asas dan aplikasi Jun 18, 2023 am 08:54 AM

Dengan perkembangan pesat aplikasi Web, semakin ramai pembangun mengalihkan perhatian mereka kepada pelbagai rangka kerja pembangunan Web dan corak reka bentuk seni bina yang baru muncul. Salah satu corak reka bentuk berprofil tinggi ialah corak seni bina MVVM (ModelViewViewModel). MVVM menggunakan corak reka bentuk moden yang membolehkan pembangun mengurus dan menyelenggara aplikasi dengan lebih baik dengan memisahkan UI dan logik perniagaan. Selain itu, MVVM mengurangkan gandingan yang tidak perlu dan meningkatkan kebolehgunaan semula dan fleksibiliti kod.

Seni Bina PHP MVC: Membina Aplikasi Web untuk Masa Depan Seni Bina PHP MVC: Membina Aplikasi Web untuk Masa Depan Mar 03, 2024 am 09:01 AM

Pengenalan Dalam dunia digital yang berkembang pesat hari ini, adalah penting untuk membina aplikasi WEB yang mantap, fleksibel dan boleh diselenggara. Seni bina PHPmvc menyediakan penyelesaian yang ideal untuk mencapai matlamat ini. MVC (Model-View-Controller) ialah corak reka bentuk yang digunakan secara meluas yang memisahkan pelbagai aspek aplikasi kepada komponen bebas. Asas seni bina MVC Prinsip teras seni bina MVC ialah pengasingan kebimbangan: Model: merangkum data dan logik perniagaan aplikasi. Lihat: Bertanggungjawab untuk membentangkan data dan mengendalikan interaksi pengguna. Pengawal: Menyelaras interaksi antara model dan pandangan, mengurus permintaan pengguna dan logik perniagaan. Seni Bina PHPMVC Seni bina phpMVC mengikut corak MVC tradisional tetapi juga memperkenalkan ciri khusus bahasa. Berikut ialah PHPMVC

Panduan lanjutan untuk seni bina PHP MVC: membuka kunci ciri lanjutan Panduan lanjutan untuk seni bina PHP MVC: membuka kunci ciri lanjutan Mar 03, 2024 am 09:23 AM

Seni bina MVC (Model-View-Controller) adalah salah satu corak yang paling popular dalam pembangunan PHP kerana ia menyediakan struktur yang jelas untuk mengatur kod dan memudahkan pembangunan aplikasi WEB. Walaupun prinsip asas MVC mencukupi untuk kebanyakan aplikasi web, ia mempunyai beberapa had untuk aplikasi yang perlu mengendalikan data kompleks atau melaksanakan fungsi lanjutan. Mengasingkan lapisan model Mengasingkan lapisan model ialah teknik biasa dalam seni bina MVC lanjutan. Ia melibatkan memecahkan kelas model kepada subkelas yang lebih kecil, setiap satu memfokuskan pada fungsi tertentu. Contohnya, untuk aplikasi e-dagang, anda mungkin menguraikan kelas model utama kepada model pesanan, model produk dan model pelanggan. Pemisahan ini membantu meningkatkan kebolehselenggaraan dan kebolehgunaan semula kod. Gunakan suntikan pergantungan

Mendedahkan kejayaan rangka kerja SpringMVC: mengapa ia begitu popular Mendedahkan kejayaan rangka kerja SpringMVC: mengapa ia begitu popular Jan 24, 2024 am 08:39 AM

Rangka kerja SpringMVC dinyahsulit: Mengapakah ia begitu popular, contoh kod khusus diperlukan Pengenalan: Dalam bidang pembangunan perisian hari ini, rangka kerja SpringMVC telah menjadi pilihan yang sangat popular di kalangan pembangun. Ia adalah rangka kerja Web berdasarkan corak seni bina MVC, menyediakan kaedah pembangunan yang fleksibel, ringan dan cekap. Artikel ini akan menyelidiki daya tarikan rangka kerja SpringMVC dan menunjukkan kuasanya melalui contoh kod tertentu. 1. Kelebihan rangka kerja SpringMVC Kaedah konfigurasi fleksibel Spr

Bagaimana untuk melaksanakan corak MVC menggunakan PHP Bagaimana untuk melaksanakan corak MVC menggunakan PHP Jun 07, 2023 pm 03:40 PM

Corak MVC (Model-View-Controller) ialah corak reka bentuk perisian yang biasa digunakan yang boleh membantu pembangun mengatur dan mengurus kod dengan lebih baik. Corak MVC membahagikan aplikasi kepada tiga bahagian: Model, View dan Controller, setiap bahagian mempunyai peranan dan tanggungjawabnya sendiri. Dalam artikel ini, kita akan membincangkan cara melaksanakan corak MVC menggunakan PHP. Model Model A mewakili data aplikasi dan pemprosesan data. secara amnya,

Cara menggunakan seni bina MVC untuk mereka bentuk projek dalam PHP Cara menggunakan seni bina MVC untuk mereka bentuk projek dalam PHP Jun 27, 2023 pm 12:18 PM

Dalam pembangunan Web, MVC (Model-View-Controller) ialah corak seni bina yang biasa digunakan untuk memproses dan mengurus data aplikasi, antara muka pengguna dan logik kawalan. Sebagai bahasa pembangunan web yang popular, PHP juga boleh menggunakan seni bina MVC untuk mereka bentuk dan membina aplikasi web. Artikel ini akan memperkenalkan cara menggunakan seni bina MVC untuk mereka bentuk projek dalam PHP, dan menerangkan kelebihan dan langkah berjaga-jaganya. Apa itu MVCMVC ialah corak seni bina perisian yang biasa digunakan dalam aplikasi web. MV

Membangunkan MVC dengan rangka kerja PHP8: Konsep dan teknik penting yang perlu diketahui oleh pemula Membangunkan MVC dengan rangka kerja PHP8: Konsep dan teknik penting yang perlu diketahui oleh pemula Sep 11, 2023 am 09:43 AM

Membangunkan MVC dengan rangka kerja PHP8: Konsep dan teknik penting yang perlu diketahui oleh pemula Pengenalan: Dengan perkembangan pesat Internet, pembangunan Web memainkan peranan penting dalam industri pembangunan perisian masa kini. PHP digunakan secara meluas untuk pembangunan web, dan terdapat banyak rangka kerja matang yang membantu pembangun membina aplikasi dengan lebih cekap. Antaranya, seni bina MVC (Model-View-Controller) adalah salah satu corak yang paling biasa dan digunakan secara meluas. Artikel ini akan memperkenalkan cara pemula boleh menggunakan rangka kerja PHP8 untuk membangunkan aplikasi MVC.

Membangunkan MVC dengan Rangka Kerja PHP8: Panduan Langkah demi Langkah Membangunkan MVC dengan Rangka Kerja PHP8: Panduan Langkah demi Langkah Sep 11, 2023 am 10:05 AM

Membangunkan MVC dengan rangka kerja PHP8: Panduan langkah demi langkah Pengenalan: MVC (Model-View-Controller) ialah corak seni bina perisian yang biasa digunakan yang digunakan untuk memisahkan logik, data dan antara muka pengguna aplikasi. Ia menyediakan struktur yang memisahkan aplikasi kepada tiga komponen berbeza untuk pengurusan dan penyelenggaraan kod yang lebih baik. Dalam artikel ini, kami akan meneroka cara menggunakan rangka kerja PHP8 untuk membangunkan aplikasi yang mematuhi corak MVC. Langkah Satu: Fahami Corak MVC Sebelum mula membangunkan aplikasi MVC, I