Panduan Pemula untuk Arsitektur MVC di Java

Diterbitkan: 2018-04-10

Jika Anda terkait dengan adegan pengembangan web, Anda pasti akan menemukan akronim "MVC" ratusan kali, jika tidak lebih. MVC adalah salah satu pola desain yang paling banyak dibicarakan di dunia pemrograman web saat ini, dan memang demikian. Pada artikel ini, kami akan membawa Anda melalui dunia Arsitektur MVC. Kita akan berbicara tentang dasar-dasar MVC, kelebihannya, dan terakhir, kode sederhana yang akan membantu Anda memahami implementasi MVC di Java dengan cara yang lebih jelas.

Daftar isi

Apa sebenarnya arsitektur MVC itu?

Sebelum kita membahas teknisnya, mari kita perjelas beberapa hal – MVC BUKAN pola desain, ini adalah cara untuk menyusun aplikasi Anda. Dalam beberapa tahun terakhir, aplikasi web secara ekstensif menggunakan arsitektur MVC, dan oleh karena itu wajar untuk membingungkannya dengan pola desain yang eksklusif untuk aplikasi web. Namun, mari kita beri tahu Anda bahwa MVC pertama kali dijelaskan pada tahun 1979 – sebelum era WWW ketika tidak ada konsep aplikasi web. Arsitektur yang digunakan saat ini untuk aplikasi web merupakan adaptasi dari pola aslinya.
Faktanya, arsitektur ini awalnya termasuk dalam dua kerangka kerja pengembangan web utama – Struts dan Ruby on Rails. Kedua lingkungan ini membuka jalan bagi sebagian besar kerangka kerja web yang muncul kemudian – dan dengan demikian popularitas arsitektur ini terus meningkat.

Pelajari cara membuat aplikasi seperti Swiggy, Quora, IMDB, dan lainnya

Pola arsitektur MVC mengikuti ide dasar – kita harus memisahkan tanggung jawab dalam aplikasi apa pun dengan dasar berikut:

  • Model: Menangani data dan logika bisnis.
  • View: Menampilkan data kepada pengguna setiap kali diminta.
  • Controller: Menghibur permintaan pengguna dan mengambil sumber daya yang diperlukan.

Masing-masing komponen memiliki serangkaian tugas berbatas yang memastikan kelancaran fungsi seluruh aplikasi bersama dengan modularitas lengkap. Mari kita lihat masing-masing komponen ini secara lebih rinci.

Pengontrol

Pengontrol seperti pengurus rumah tangga aplikasi – ia melakukan koordinasi antara model dan tampilan untuk memenuhi permintaan pengguna. Permintaan pengguna diterima sebagai permintaan HTTP get atau post – misalnya, ketika pengguna mengklik elemen GUI apa pun untuk melakukan tindakan apa pun.
Fungsi utama pengontrol adalah memanggil dan berkoordinasi dengan model untuk mengambil sumber daya yang diperlukan untuk bertindak. Biasanya, saat menerima permintaan pengguna, pengontrol memanggil model yang sesuai untuk tugas yang ada.

Model

Modelnya adalah data sederhana untuk aplikasi kita. Data "dimodelkan" dengan cara yang mudah untuk disimpan, diambil, dan diedit. Modelnya adalah bagaimana kita menerapkan aturan pada data kita, yang pada akhirnya mewakili konsep yang dikelola aplikasi kita.
Untuk aplikasi perangkat lunak apa pun, semuanya dimodelkan sebagai data yang dapat ditangani dengan mudah. Apa itu pengguna, buku, atau pesan untuk aplikasi? Tidak ada kok, hanya data yang harus diproses menurut aturan tertentu. Seperti, tanggal tidak boleh lebih tinggi dari tanggal saat ini, email harus dalam format yang benar, nama tidak boleh lebih dari karakter “x”, dll.

Setiap kali pengguna membuat permintaan apa pun dari pengontrol, ia menghubungi model yang sesuai yang mengembalikan representasi data dari apa pun yang diminta pengguna. Model ini akan sama untuk pekerjaan tertentu, terlepas dari bagaimana kita ingin menampilkannya kepada pengguna. Itulah sebabnya kami dapat memilih tampilan apa pun yang tersedia untuk merender data model.
Selain itu, model juga berisi logika untuk memperbarui pengontrol yang relevan setiap kali ada perubahan dalam data model.

Melihat

Seperti namanya, tampilan bertanggung jawab untuk merender data yang diterima dari model. Mungkin ada templat yang telah dirancang sebelumnya di mana Anda dapat memasukkan data, dan bahkan mungkin ada beberapa tampilan berbeda per model tergantung pada persyaratannya.

Aplikasi web apa pun disusun dengan mengingat ketiga komponen inti ini. Mungkin ada pengontrol utama yang bertanggung jawab untuk menerima semua permintaan dan memanggil pengontrol khusus untuk tindakan tertentu. Mari kita memahami cara kerja aplikasi web di bawah arsitektur MVC dengan lebih baik menggunakan sebuah contoh.

Mari Kita Lihat Contoh

Mari kita ambil contoh toko alat tulis online. Pengguna dapat melihat item, membeli, menambahkan item ke keranjang, menambahkan item ke pesanan saat ini, atau bahkan menambah/menghapus item (jika dia adalah admin).
Sekarang, mari kita lihat apa yang akan terjadi ketika pengguna mengklik judul “Pens” untuk melihat daftar pena.
Aplikasi kita akan memiliki pengontrol khusus untuk menangani semua pertanyaan yang terkait dengan pena. Katakanlah itu disebut "pens_controller.php". Kami juga akan memiliki model yang akan menyimpan data mengenai pena yang kami miliki – sebut saja “pens_model.php”. Terakhir, kita akan memiliki beberapa tampilan untuk menyajikan data – daftar pena, tabel yang menampilkan pena, halaman untuk mengedit daftar, dll.
Gambar berikut menunjukkan aliran kontrol lengkap langsung dari saat pengguna mengklik "pena", hingga saat hasilnya ditampilkan di depannya:

Pertama, "pens_controller.php" menangani permintaan pengguna (1) sebagai permintaan GET atau POST. Kita juga dapat memiliki "index.php" yang merupakan pengontrol pusat yang akan memanggil "pens_controller" kapan pun diperlukan.
Kontroler kemudian memeriksa permintaan dan parameter dan memanggil model yang diperlukan – dalam hal ini, “pens_model.php”. Pengontrol meminta model untuk mengembalikan daftar pena yang tersedia (2).
Sekarang, model mencari database untuk informasi yang diperlukan (3), menerapkan logika jika perlu, dan mengembalikan data ke controller (4).
Kontroler kemudian memilih tampilan yang sesuai (5) dan menyajikan data (6 dan 7). Jika permintaan datang dari perangkat genggam, tampilan yang cocok untuknya akan digunakan, atau jika pengguna memiliki tema tertentu yang dipilih, tampilannya akan dipilih – dan seterusnya.
Bagaimana Menjadi Pengembang Full Stack

Keuntungan Arsitektur MVC

Masalah umum yang dihadapi oleh pengembang aplikasi saat ini adalah dukungan untuk berbagai jenis perangkat. Arsitektur MVC memecahkan masalah ini karena pengembang dapat membuat antarmuka yang berbeda untuk perangkat yang berbeda, dan berdasarkan perangkat mana permintaan dibuat, pengontrol akan memilih tampilan yang sesuai. Model mengirimkan data yang sama terlepas dari perangkat yang digunakan, yang memastikan konsistensi lengkap di semua perangkat.
Pemisahan MVC dengan indah mengisolasi pandangan dari logika bisnis. Ini juga mengurangi kerumitan dalam mendesain aplikasi besar dengan menjaga kode dan alur kerja tetap terstruktur. Ini membuat keseluruhan kode lebih mudah untuk dipelihara, diuji, di-debug, dan digunakan kembali.

Implementasi MVC Sederhana menggunakan Java

Kami akan memiliki tiga berikut:

    1. StudentObject : modelnya.

    1. StudentView: lihat kelas untuk mencetak detail di konsol.

  1. StudentController: pengontrol yang menyimpan data di studentObject dan memperbarui StudentView yang sesuai

Langkah 1: Buat Model

 siswa kelas umum {
   gulungan String pribadiTidak ;
   nama String pribadi ;
   
   publik String getRollNo () {
      kembali gulunganTidak ;
   }
   
   public void setRollNo ( String rollNo ) {
      ini . rollNo = rollNo ;
   }
   
   publik String getName () {
      nama kembali ;
   }
   
   public void setName ( Nama string ) {
      ini . nama = nama ;
   }
}

Kode ini cukup jelas. Ini terdiri dari fungsi untuk mendapatkan / mengatur nomor gulungan dan nama siswa. Sebut saja "student.java".
Langkah 2: Buat Tampilan

 StudentView kelas publik {
   public void printStudentDetails ( String studentName , String studentRollNo ){
      Sistem . keluar . println ( "Siswa : " );
      Sistem . keluar . println ( "Nama : " + Nama Mahasiswa );
      Sistem . keluar . println ( "No.Roll : " + studentRollNo );
   }
}

Ini hanya untuk mencetak nilai ke konsol. Sebut saja ini "studentView.java".
Langkah 3: Buat Pengontrol

 StudentController kelas publik {
   model Siswa swasta ;
   tampilan StudentView pribadi ;
   StudentController publik ( Model siswa , tampilan StudentView ){
      ini . model = model ;
      ini . melihat = melihat ;
   }
   public void setStudentName ( Nama string ){
model . setNama ( nama );
   }
   publik String getStudentName (){
      kembali model . getNama ();
   }
   public void setStudentRollNo ( String rollNo ){
model . setRollNo ( Tidak roll );
   }
   publik String getStudentRollNo (){
      kembali model . getRollNo ();
   }
   public void updateView (){
lihat . printStudentDetails ( model . getName (), model . getRollNo ());
   }
}

Sebut ini "StudentController.java". Pandangan sekilas akan memberi tahu Anda bahwa pengontrol ini hanya bertanggung jawab untuk memanggil model untuk mendapatkan/mengatur data, dan kemudian memperbarui tampilan.
Sekarang, mari kita lihat bagaimana semua ini diikat menjadi satu.
Langkah 4: Buat file Java utama

 kelas publik MVCPatternDemo {
   public static void main ( String [] args ) {
      //mengambil catatan siswa berdasarkan no rollnya dari database
      Model siswa = retriveStudentFromDatabase ();
      //Buat tampilan: untuk menulis detail siswa di konsol
      Tampilan StudentView = tampilan StudentView baru ();
      StudentController controller = new StudentController ( model , view );
pengontrol _ updateView ();
      //memperbarui data model
pengontrol _ setStudentName ( "John" );
pengontrol _ updateView ();
   }
   private static Student retriveStudentFromDatabase (){
      Mahasiswa mahasiswa = Mahasiswa baru ();
mahasiswa . setName ( "Robert" );
mahasiswa . setRollNo ( "10" );
      kembali siswa ;
   }
}

Ini disebut "MVCPatternDemo.java". Seperti yang Anda lihat, itu mengambil data siswa dari database atau fungsi (dalam hal ini kami menggunakan fungsi untuk mengatur nilai) dan mendorongnya ke model Siswa. Kemudian, ini menginisialisasi tampilan yang telah kita buat sebelumnya.
Selanjutnya, ini juga menginisialisasi pengontrol kami dan mengikatnya ke model dan tampilan. Metode updateView() adalah bagian dari pengontrol yang memperbarui detail siswa di konsol.
Langkah 5: Uji Hasilnya
Jika semuanya berjalan dengan benar, hasilnya seharusnya:

 Murid:
Nama: Robert
Gulungan No: 10
Murid:
Nama: John
Gulungan No: 10

Jika Anda mendapatkan ini sebagai output, selamat! Anda telah berhasil mengimplementasikan arsitektur MVC menggunakan Java, meskipun untuk aplikasi sederhana. Betapapun sederhananya, aplikasi ini cukup untuk menunjukkan kekuatan arsitektur MVC.
15 Pertanyaan Wawancara Musim Semi MVC yang Harus Diketahui

Membungkus…
Setelah begitu banyak yang dikatakan dan dilakukan, sulit untuk lebih menekankan kekuatan arsitektur MVC di aplikasi web/desktop apa pun akhir-akhir ini. Ini memberikan tingkat modularitas yang sama sekali baru untuk kode Anda yang membuatnya lebih mudah dibaca dan dipelihara. Jadi, jika Anda ingin meningkatkan karir Anda sebagai pengembang aplikasi, menguasai arsitektur MVC dan cara kerjanya harus menjadi prioritas utama Anda.

Mendaftar di Kursus Rekayasa Perangkat Lunak dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Berikan komentar dan beri tahu kami bagaimana Anda menyukai artikel ini!

Menjadi Pengembang Tumpukan Penuh

Diploma PG UpGrad dan IIIT-Bangalore dalam Pengembangan Perangkat Lunak
Daftar Sekarang untuk Magister Rekayasa Perangkat Lunak