DESIGN PATTERN
Design Pattern atau sering disebut pola design merupakan metode yang dibuat untuk membantu tim pengembang, dalam menemukan Solusi dari masalah – masalah umum yang muncul saat pengembangan perangkat lunak sedang berlangsung.
Design Pattern ini dapat digunakan kembali dalam pengemabangan perangkat lunak selanjutnya, ini bukanlah suatu metode yang dapat diimplementasikan langsung menjadi sebuah kode program, melainkan sebuah pola untuk menyelesaikan masalah dalam situasi yang bermacam – macam.
Jika dilihat Design pattern ini mirip dengan blueprint yang siap digunakan untuk memecahkan masalah desain berulang di Tengah proses coding, namun Desain Pattern ini tidak berbentuk potongan kode,ini akan terlihat seperti sebuah konsep yang sangat membantu tim pengembang memahami hubungan antar objek di dalamnya. Oleh karena itu design pattern ini membantu developer menghindari masalah desain yang umum terjadi sehingga bisa mempercepat proses pengembangan secara keseluruhan.
MACAM – MACAM DESIGN PATTERN
-
Creational Pattern (Pola Pembuatan)
Pola ini adalah Solusi untuk menyelesaikan yang ditemukan dalam pembuatan suatu instance atau objek, contohnya adalah pada saat pengembang ingin membuat sebuah class untuk database yang dapat diakses dari beberapa Lokasi, dengan 5 macam jenis dari creational pattern, diantaranya :
-
Abstrack Factory
Pola ini dapat mengartikan abstract class untuk medefine objek tanpa harus mengenal class lain yang terkait.
-
Builder
Pola ini dapat membuat objek dengan sederhana dengan pendekatan langkah per langkah dari yang asalnya object yang kompleks.
-
Factory Method
Pola ini menetapkan sebuah interface atau abstract class untuk membuat sebuah objek, tetapi tetap membiarkan subclass untuk mengubah jenis objek yang dibuat, atau bisa disebut dengan Virtual Constructor.
-
Prototype
Pola ini menyalin objek dengan menggunakan instace prototype nya yang ada dengan membuat objek yang baru dan dapat dikostumisasi sesuai dengan kebutuhan tanpa bergantung dengan objek aslinya.
-
Singleton
Pola ini hanya memiliki suatu class sebagai global access point ke instance terkait, dan ada dua jenis dari singleton ini diantaranya Early Instantiation dan Lazy Instantiation.
-
Behavioral Pattern (Pola Perilaku)
Ini merupakan Pola untuk menyelesaikan sebuah masalah yang ditemukan dalam komunikasi antar object, dengan 11 macam yang termasuk dari Behavioral pattern dianataranya :
-
Chain of Responsibility
Pola ini dapat memisahkan pengirim dan penerima dari sebuah Request seperti sebuah rantai dalam mengirmkan request tersebut.
-
Command
Pola ini dapat mengubah sebuah request menjadi object yang dapat berdiri sendiri dan berisi informasi dari request tersebut.
-
Interpreter
Pola ini mengartikan cara untuk mengevaluasi ekspresi bahasa atau bahkan tata Bahasa, ini bisa digunakan untuk menafsirkan kalimat dalam Bahasa terntentu.
-
Iterator
Pola ini digunakan untuk mengakses elemen dari collection object secara berurutan tanpa mengetahui representasi yang mendasarinya seperti list, stack, tree dan lainnya, atau biasanya dikenal dengan Cursor.
-
Mediator
Pola ini bekerja seperti penengah antara interaksi sebuah class dengan object lainnya.
-
Memento
Pola ini berguna saat ingin mengembalikan keadaan dari suatu objeck ke keadaan sebelumnya tanpa melanggar aturan yang ada. Ini dikenal dengan sebutan Token.
-
Observer
Pola ini diartikan sebagai relasi antara satu dengan banyak object, jadi jika ada perubahan pada object semua dependencynya akan mengetahui perubahan tersebut.
-
State
Pola ini dapat mengubah perilaku dengan berpatok dengan kondisi internal dan object yang muncul akan otomatis mengubah status class tersebut
-
Stratety
Ini akan mendefinisikan family algoritm. Kemudian melakukan enkapsulasi masing – masing algoritma ke dalam class yang terpisah dan membuat object dapat dipertukarkan, ini biasanya disebut Policy.
-
Template Method
Pola ini memungkinkan mengartikan kerangka dari algoritma menjadi base class dan membiarkan subclass mengartikan kembali langkah tertentu tanpa harus mengubah dari algoritma sebelumnya.
-
Visitor
Pola ini mungkin dapat menentukan suatu operasi baru tanpa mengubah class elemen operasi itu bertempat.
-
Structural Pattern (Pola Struktural)
Pola ini dapat menyelesaikan masalah yang ditemukan pada pengaturan komposisi class dan object. Dengan 7 macam jenis Structural Pattern diantaranya :
-
Adapter
Ini biasanya dikenal dengan Wrapper, dengan mengubah class interface menjadi interface yang diharapkan.
-
Bridge
Ini biasa disebut dengan handle dan body, yang dapat memungkinkan membagi sebuah class yang besar menjadi 2 hierarki yaitu abstraksi dan implementasi
-
Composite
Ini Menyusun sebuah object menjadi tree yang terstruktur untuk mewakiliki hierarki object.
-
Decorator
Ini biasanya disebut dengan Wrapper Object. Dengan memungkinkan untuk implementasi perilaku yang baru.
-
Facade
Biasanya Facade ini digunakan di Abstrack Factory yang tujuannya untuk mensederhakan interface ke dalam sebuah library atau Kumpulan dari class.
-
Flyweight
Ini digunakan untuk mengurangi beban pada memori.
-
Proxy
Ini akan menjadi tempat untuk pengganti atau placeholder untuk object yang lain.