cari

什么是MVC设计模式?

Apr 16, 2019 pm 01:19 PM
corak reka bentuk mvc


Model View Controller简称MVC,即模型视图控制器。MVC设计模式指定应用程序由数据模型、呈现信息和控制信息组成。该模式要求将每个模式分成不同的对象。

MVC更像是一种架构模式,但并不适用于完整的应用程序。MVC主要与应用程序的UI 交互层有关。你仍然需要业务逻辑层,可能还需要一些服务层和数据访问层。

什么是MVC设计模式?

模型(Model)只包含纯应用程序数据,不包含描述如何将数据呈现给用户的逻辑。

视图(View)向用户显示模型的数据。视图知道如何访问模型的数据,但它不知道这些数据意味着什么,也不知道用户可以做什么来操作它。

控制器(Controller)存在于视图和模型之间。它侦听视图(或其他外部源)触发的事件,并对这些事件执行适当的响应。在大多数情况下,响应是调用模型上的方法。由于视图和模型是通过通知机制连接的,因此此操作的结果将自动反映在视图中。

让我们看一个MVC设计模式的例子。

class Student  
{ 
    private String rollNo; 
    private String name; 
     
    public String getRollNo()  
    { 
        return rollNo; 
    } 
     
    public void setRollNo(String rollNo)  
    { 
        this.rollNo = rollNo; 
    } 
     
    public String getName()  
    { 
        return name; 
    } 
     
    public void setName(String name)  
    { 
        this.name = name; 
    } 
} 
  
class StudentView  
{ 
    public void printStudentDetails(String studentName, String studentRollNo) 
    { 
        System.out.println("学生: "); 
        System.out.println("姓名: " + studentName); 
        System.out.println("编号: " + studentRollNo); 
    } 
} 
  
class StudentController  
{ 
    private Student model; 
    private StudentView view; 
  
    public StudentController(Student model, StudentView view) 
    { 
        this.model = model; 
        this.view = view; 
    } 
  
    public void setStudentName(String name) 
    { 
        model.setName(name);         
    } 
  
    public String getStudentName() 
    { 
        return model.getName();         
    } 
  
    public void setStudentRollNo(String rollNo) 
    { 
        model.setRollNo(rollNo);         
    } 
  
    public String getStudentRollNo() 
    { 
        return model.getRollNo();         
    } 
  
    public void updateView() 
    {                 
        view.printStudentDetails(model.getName(), model.getRollNo()); 
    }     
} 
  
class MVCPattern  
{ 
    public static void main(String[] args)  
    { 
        Student model  = retriveStudentFromDatabase(); 
  
        StudentView view = new StudentView(); 
  
        StudentController controller = new StudentController(model, view); 
  
        controller.updateView(); 
  
        controller.setStudentName("Vikram Sharma"); 
  
        controller.updateView(); 
    } 
  
    private static Student retriveStudentFromDatabase() 
    { 
        Student student = new Student(); 
        student.setName("Lokesh Sharma"); 
        student.setRollNo("15UCS157"); 
        return student; 
    } 
      
}

输出:

学生: 
姓名: Lokesh Sharma
编号: 15UCS157
学生: 
姓名: Vikram Sharma
编号: 15UCS157

优势

• 多个开发人员可以同时处理模型、控制器和视图。

• MVC支持对控制器上的相关操作进行逻辑分组。特定模型的视图也被分组在一起。

• 模型可以有多个视图。

缺点

• 框架导航可能很复杂,因为它引入了新的抽象层,并且要求用户适应MVC的分解标准。

• 多种技术的知识成为规范。使用MVC的开发人员需要精通多种技术



Atas ialah kandungan terperinci 什么是MVC设计模式?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Bagaimana anda mengubah suai data yang disimpan dalam sesi PHP?Bagaimana anda mengubah suai data yang disimpan dalam sesi PHP?Apr 27, 2025 am 12:23 AM

Tomodififydatainaphpsession, startTheSessionWithSsion_start (), thenuse $ _SessionToset, Modify, Orremovariables.1) startTheSession.2) setOrmodifySessionVariabelinging $ _Session.3) ReveVariablesWithunset ()

Berikan contoh menyimpan array dalam sesi PHP.Berikan contoh menyimpan array dalam sesi PHP.Apr 27, 2025 am 12:20 AM

Array boleh disimpan dalam sesi PHP. 1. Mulakan sesi dan gunakan session_start (). 2. Buat array dan simpan dalam $ _Session. 3. Dapatkan array melalui $ _Session. 4. Mengoptimumkan data sesi untuk meningkatkan prestasi.

Bagaimanakah pengumpulan sampah berfungsi untuk sesi PHP?Bagaimanakah pengumpulan sampah berfungsi untuk sesi PHP?Apr 27, 2025 am 12:19 AM

Pengumpulan sampah sesi PHP dicetuskan melalui mekanisme kebarangkalian untuk membersihkan data sesi yang telah tamat tempoh. 1) Tetapkan kebarangkalian pencetus dan kitaran hayat sesi dalam fail konfigurasi; 2) Anda boleh menggunakan tugas cron untuk mengoptimumkan aplikasi beban tinggi; 3) Anda perlu mengimbangi kekerapan dan prestasi pengumpulan sampah untuk mengelakkan kehilangan data.

Bagaimana anda dapat mengesan aktiviti sesi di PHP?Bagaimana anda dapat mengesan aktiviti sesi di PHP?Apr 27, 2025 am 12:10 AM

Mengesan aktiviti sesi pengguna dalam PHP dilaksanakan melalui pengurusan sesi. 1) Gunakan session_start () untuk memulakan sesi. 2) Simpan dan data akses melalui array $ _Session. 3) Hubungi session_destroy () untuk mengakhiri sesi. Penjejakan sesi digunakan untuk analisis tingkah laku pengguna, pemantauan keselamatan, dan pengoptimuman prestasi.

Bagaimana anda boleh menggunakan pangkalan data untuk menyimpan data sesi PHP?Bagaimana anda boleh menggunakan pangkalan data untuk menyimpan data sesi PHP?Apr 27, 2025 am 12:02 AM

Menggunakan pangkalan data untuk menyimpan data sesi PHP dapat meningkatkan prestasi dan skalabilitas. 1) Konfigurasi MySQL untuk menyimpan data sesi: Sediakan pemproses sesi dalam kod php.ini atau php. 2) Melaksanakan pemproses sesi tersuai: Tentukan fungsi terbuka, tutup, baca, tulis dan lain -lain untuk berinteraksi dengan pangkalan data. 3) Pengoptimuman dan amalan terbaik: Gunakan pengindeksan, caching, pemampatan data dan penyimpanan yang diedarkan untuk meningkatkan prestasi.

Terangkan konsep sesi PHP secara ringkas.Terangkan konsep sesi PHP secara ringkas.Apr 26, 2025 am 12:09 AM

PhpSSsionsTrackUserDataacrossmultiplePagerequestSuseUniquidStoredinacookie.here'ShoWtomanAgeThemEffectely: 1) startAnSessionWithSession_Start () danStoRedatain $ _Session.2)

Bagaimana anda melengkapkan semua nilai yang disimpan dalam sesi PHP?Bagaimana anda melengkapkan semua nilai yang disimpan dalam sesi PHP?Apr 26, 2025 am 12:06 AM

Dalam PHP, iterating melalui data sesi dapat dicapai melalui langkah -langkah berikut: 1. Mulakan sesi menggunakan session_start (). 2. ITERATE melalui gelung foreach melalui semua pasangan nilai utama dalam array $ _Session. 3. Apabila memproses struktur data kompleks, gunakan fungsi is_array () atau is_object () dan gunakan print_r () untuk mengeluarkan maklumat terperinci. 4. Apabila mengoptimumkan traversal, paging boleh digunakan untuk mengelakkan memproses sejumlah besar data pada satu masa. Ini akan membantu anda mengurus dan menggunakan data sesi PHP dengan lebih cekap dalam projek sebenar anda.

Terangkan cara menggunakan sesi untuk pengesahan pengguna.Terangkan cara menggunakan sesi untuk pengesahan pengguna.Apr 26, 2025 am 12:04 AM

Sesi ini menyedari pengesahan pengguna melalui mekanisme pengurusan negara pelayan. 1) Penciptaan sesi dan penjanaan ID unik, 2) IDS diluluskan melalui kuki, 3) kedai pelayan dan mengakses data sesi melalui ID, 4) Pengesahan pengguna dan pengurusan status direalisasikan, meningkatkan keselamatan aplikasi dan pengalaman pengguna.

See all articles

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.