Beberapa permasalahan dapat muncul ketika suatu apikasi yang sangat kompleks yang terdiri dari berbagai elemen mencakup data akses, bisnis logic, dan presentasi atau tampilan. Masalah tersebut terjadi karena ketergantungan antar elemen yang sangat tinggi, yang pada akhirnya mberakibat pada sulitnya proses maintenance. Ketergantungan yang sangat tinggi (high couple) ini pula yang menyebabkan suatu elemen tidak dapat re-usable untuk aplikasi yang lain. Sehingga proses develop juga akan berjalan tidak efektif. Sebgaia gambaran kasar seperti ini, semisal pada lapisan bisnis (buiness logic) terdapat beberapa eleman atau klas yang masing-masing klas membutuhkan akses ke database. Pada setiap klas diberikan method dan properti untuk keperluan akses database ini. Apabila terjadi perubahan pada pola akses dattabase, tentu kita akan melakukan perbaikan pada seluruh klas yang mempunyai method untuk akses ke database. Hal ini akan berbeda jika koneksi ke databse dijadikan sebuah elemen klas yang mandiri. Gambaran tersebut memang terlalu simple atau bahkan mungkin sangat jah dari optimal untuk menggambarkan relevansi implementasi MVC, tapi paling tidak sedikit membuka pandangan.

blok MVC

Pola desain MVC (Model-View-Controller) memberikan pemecahan permasalahan coupling yang tinggi tersebut dengan men-decoupling lapisan data access, business logic, dan data presentation atau user interaction.

  • Model : Model merepresentasikan lapisan data enterprise dan logika atau rule bisnis yang akan mengakses dan mengupdate data tersebut. Pada bagian model juga merepresentasikan proses riil yang terjadi pada suatu objek. Bisa termasuk dalam bagian ini adalah javabeans dengan properti dan method yang dimiliki ( getters, setters dan constructors). Javabeans berhubungan dengan konsep kegunaan dari website yang kita buat yang akan digunakan oleh user. Sebagai contoh, jika web yang dikembangkan adalah tentang penjualan produk, maka tentu akan terdapat beberapa javabeans inti seperti : produk, customer, order, invoice. Secara singkat dapat kita sebut bahwa bagian model merupakan inti dari layer bisnis.

  • View : Bagian ini bisa dibangun dengan teknologi JSP. Bagian ini yang akan memberikan tampilan kepada user, dari data yang didapatkan dari lapisan model. Jadi JSP digunakan disini hanya untuk menampilkan data saja. Bagian ini bisa juga disebut presentation layer. Selain JSP bisa juga dengan menggunakan JSF

  • Controller : Bagian ini digunakan untuk menerima setiap request dan memformulasikan sutau response untuk request tersebut. Ini bisa dilakukan dengan teknologi servlet, yang bisa juga diimplementasikan dengan JSP atau JSF.

    Di atas tadi merupakan 3 bagian dari MVC, tetapi saya pernah membaca forum yang pada akhirnya berkeinginan untuk emenambahkan sebuah bagian baru di luar bagaian MVC yaitu bagian DAO atau Data Access Object. Bagian ini difungsikan untuk koneksi ke database dan membuat javabeans untuk menampung data yang didapatkn dari databse.

 

CMIIW πŸ™‚