Dalam membuat sebuah perangkat lunak, developer terkadang dihadapkan dengan suatu masalah yang hampir serupa dengan mengkoding. Masalah tersebut biasanya ditemukan secara berulang dan diselesaikan dengan teknik berbeda tergantung situasinya. Sehingga, proses pengembangan menjadi terhambat dan memakan waktu yang lama. Oleh karena itu, design pattern dapat digunakan untuk menyelesaikan masalah yang muncul. Dengan memahami apa itu design pattern, pembuatan proyek menjadi lebih rapi secara struktural.
Pahami Apa itu Design Pattern Untuk Pembuatan Software
Apa itu Design Pattern
Apa itu design pattern? design pattern atau pola desain adalah metode yang dibuat untuk menemukan solusi dari masalah-masalah yang biasanya berulang atau memiliki pola serupa. Design pattern bukan merupakan metode yang dapat diimplementasikan langsung menjadi sebuah kode program, melainkan pola dasar untuk menyelesaikan masalah dalam situasi yang berbeda-beda. Selain berfungsi untuk memberikan solusi, design pattern juga membuat penulisan kode menjadi lebih rapi, terstruktur, dan mudah dibaca.
Macam-Macam Design Pattern
- Creational Pattern (Pola Pembuatan)
Pattern ini adalah solusi untuk menyelesaikan masalah yang dalam pembuatan suatu instance atau objek. Pola ini dibagi menjadi lima macam, yaitu :
- Abstract Factory : Mendefinisikan interface atau abstract untuk membuat object tanpa harus menentukan sub-class-nya.
- Builder : Membuat sebuah objek yang kompleks dari objek sederhanaca secara bertahap.
- Factory Method : Menetapkan interface atau abstract class untuk membuat suatu objek, dengan membiarkan sub-class mengubah jenis objek yang dibuat.
- Prototype : Menyalin objek menggunakan instance prototype yang ada dengan membuat ojek baru dan dapat dikostumisasi sesuai kebutuhan.
- Singleton : Pola ini memastikan suatu class hanya memiliki satu instance saja dan menyediakan global access point ke instance tersebut.
- Behavioral Pattern (Pola perilaku)
Pattern ini adalah sebuah solusi untuk menyelesaikan permasalah yang ditemukan dalam komunikasi antar object. Terdapat sebelas macam pola perilaku, yaitu :
- Chain of responsibility : Memisahkan pengirim dan penerima berdasarkan request yang dikirim.
- Interpreter : Mengevaluasi ekspresi bahasa atau tata bahasa, pola ini juga digunakan untuk menafsirkan kalimat dalam bahasa tertentu.
- Command : Mengubah request menjadi objek yang dapat berdiri sendiri.
- Iterator : Mengakses elemen dari collection object secara berurutan tanpa mengetahui dasar dari representasi.
- Memento : Mengembalikan keadaan dari suatu objek ke keadaan sebelumnya.
- Mediator : Mendefinisikan cara objek berinteraksi dengan beberapa class atau objek lainnya.
- State : Objek mengubah perilaku berdasarkan kondisi internalnya.
- Observer : Relasi dependensi antara satu dengan banyak objek, dimana ketika ada perubahan status objek, seluruh dependensi mengetahuinya secara otomatis.
- Strategy : Membantu dalam mendefinisikan family algorithm
- Template Method : Pola perilaku ini membantu mendefinisikan kerangka algoritma ke dalam base class, dan membiarkan sub-class mendefinisikan kembali langkah algoritma tersebut tanpa mengubah struktur.
- Visitor : Menentukan operasi baru tanpa mengubah kelas elemen tempat operasi.
- Structural Pattern (Pola Struktural)
Pattern ini adalah suatu solusi untuk menyelesaikan masalahan yang ditemui dalam mengatur komposisi class dan object. Pola ini dibagi menjadi tujuh macam, yaitu :
- Adapter : Mengubah class interface sesuai keinginan client. Pola ini memungkinkan objek yang sebelumnya tidak kompatibel untuk berinteraksi.
- Composite : Menungkinkan penyusunan objek menjadi struktur pohon.
- Bridge : Membagi class berukuran besar atau terkait menjadi dua hierarki terpisah yang dapat dikembangkan secara independen antara satu dengan yang lain.
- Decorator : Pola ini memasang behavior baru ke dalam object dengan menempatkan object ke dalam special wrapper objects yang berisi behavior tersebut.
- Façade : Menyedian interface yang disederhanakan ke dalam sebuah library atau kumpulan class.
- Flyweight : Digunakan untuk mengurangi beban pada memori, pada saat membuat banyak objek.
- Proxy : Memberikan pengganti atau placeholder untuk objek lain.
Baca Juga: Mengenal Apa itu Open Source dan Perbedaannya Dengan Close Source
Leave A Comment