Wednesday

HMVC Hierarchical Model View Controller [CodeIgniter]

HMVC adalah sebuah evolusi dari MVC, yang mana sering digunakan ketika mendevelop sebuah aplikasi berbasis web. Methode ini muncul sebagai solusi atas masalah dalam aplikasi yang menggunakan MVC. Solusi ini pertamanya ditulis di situs web JavaWorld, yang mana menyatakan bahwa Model, View, Controller dibuat menjadi berlapis-lapis sehingga menjadi sebuah Hierarki. Seperti digambarkan dalam gambar dibawah ini.

Sebuah layer / tingkatan berfungsi secara independent. Akan tetapi pada masing-masing layer tersebut bisa mengakses layer yang lain melalui controller mereka. Kedua hal tersebut dapat mengijinkan sebuah aplikasi untuk mendistribusikan ke beberapa lokasi jika diperlukan. Selain itu, metode layer MVC seperti ini memungkinkan untuk dapar mengembangkan aplikasi semakin dalam. Hal ini dapat menjadi sebuah keunggulan.



Mengapa menggunakan HMVC?


Beberapa point keunggulan menerapkan pola HMVC dalam siklus pengembangan aplikasi :

Modularisasi : Pengurangan ketergantungan antara bagian-bagian yang berbeda dari aplikasi.
Organisasi : Memiliki folder untuk masing-masing layer yang relevan menjadikan beban kerja semakin ringan.
Reusability : Secara alami dari desain adalah mudah untuk menggunakan kembali pada setiap bagian dari kode.
Extendibility : Membuat aplikasi lebih extensible tanpa mengorbankan kemudahan pemeliharaan.

Contoh: Saya memiliki folder modules folder ini nantinya akan saya gunakan sebagai tempat menaruh modul-modul saya. Oke, sekarang anggaplah saya ingin membuat modul produk, maka saya buat folder produk di dalam folder modules maka struktur foldernya menjadi modules/produk, di dalam folder produk ini akan kita buat folder untuk masing-masing file MVC, dengan kata lain kita akan membuat folder bernama model, view control .

Jika digambarkan, maka struktur hirarki nya akan menjadi sebagai berikut:

-modules/
….|
…+—-produk/
…….|
……+—-model/
……+—-view/
……+—-control/

File-file model akan diletakkan dalam folder model, begitu juga file view dan file control (controller) akan diletakkan ditempatnya masing-masing sesuai nama foldernya.

No comments:

Post a Comment