Mengenal tentang Architectural Pattern

Kita tahu bahwa Design Pattern membahas solusi yang lebih spesifik, sedangkan pada Architectural Pattern memiliki skala yang lebih besar tentang bagaimana pengorganisasian keseluruhan komponen aplikasi. Pattern ini lebih berfokus pada separation of concern (soc), yaitu pembagian tugas yang lebih jelas antar komponennya.

Bayangkanlah Anda ingin membangun sebuah kota baru, maka Anda perlu membuat rancangan tata letak kota, seperti pembagian lokasi untuk pemukiman, pasar, sekolah dan taman. Inilah yang disebut dengan Architectural Pattern. Nah, tentang bagaimana sebuah rumah dalam kota tersebut dibangun seperti jumlah ruang dan luas rumah disebut dengan Design Pattern. Dari sini semoga Anda menjadi lebih paham perbedaan di antara keduanya ya.

Beberapa ini adalah beberapa contoh dari Architectural Pattern:

MVx Pattern (MVVM, MVP, MVC, dll)

Pada dasarnya kita memisahkan kode yang ada di dalam project menjadi tiga layer. Yaitu bagian Model yang berhubungan dengan manipulasi data, View untuk menerima input dari pengguna serta mengatur tampilan data, dan layer lainnya akan menjadi penghubung untuk melakukan manipulasi proses bisnis.
Sebagai catatan, jangan menempatkan presenter/controller/ViewModel sebagai tempat proses bisnis dilakukan. Komponen tengah tersebut hanya menjadi mediator penghubung antara layer view dengan layer business process atau domain.

Berikut ini adalah contoh dari pembagian layer tersebut pada saat Anda membuat fitur register. Anda perlu memisahkan kode untuk proses logika seperti pengiriman data dengan kode untuk menampilkan dialog berhasil register. Sehingga pada bagian View akan dibiarkan bodoh alias tidak tahu apa apa tentang proses bisnis yang terjadi. Ini akan membuat masing-masing layer memiliki tanggung jawab yang jelas terkait perannya masing-masing. Ingat kembali prinsip Single Responsibility pada kelas SOLID.

Banyak kelebihan jika kita menggunakan metode ini, seperti kode menjadi lebih mudah dibaca, mudah digunakan kembali, dan mudah dipelihara. Bahkan kita perlu menerapkan pattern ini jika kode kita ingin mudah diuji.

Leave a Comment