Design Pattern adalah
sebuah solusi untuk menyelesaikan masalah umum yang sering di temui dan
dihadapi, yang membentuk sebuah pola (pattern) tertentu dalam membuat
sebuah program. Pattern adalah bagaimana mendesain kelas dan bagaimana interaksi
yang terjadi antar kelas tersebut sehingga kelas yang kita bangun bisa lebih
elegan dan reusable.
Ada beberapa pattern yang populer saat ini yang diciptakan oleh GoF (Gang of Four) yaitu Abstract Factory, Builder, Factory Method, Prototype, Singleton, Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Chain of Responbility, Command, Interpreter, Iterator, Mediator, Mementto, Observer, State, Strategy, Template Method, Visitor.
Ada beberapa pattern yang populer saat ini yang diciptakan oleh GoF (Gang of Four) yaitu Abstract Factory, Builder, Factory Method, Prototype, Singleton, Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Chain of Responbility, Command, Interpreter, Iterator, Mediator, Mementto, Observer, State, Strategy, Template Method, Visitor.
Secara singkat, design pattern
adalah sebuah solusi untuk mengulang masalah design. Solusi ini telah
dikembangkan, dikompile, dan disaring oleh programmer yang sebelumnya telah menghadapi masalah ini. Sebuah design pattern adalah salah satu jenis
petunjuk yang menggunakan tipe "Jika Anda memiliki masalah ini, maka
lakukan ini." Hal tersebut serupa dengan sebuah algoritma : sebagai
contoh, jika Anda ingin melakukan sebuah operasi pencarian pada sebuah daftar,
Anda tidak perlu menyelesaikan dengan solusi Anda sendiri, terdapat beberapa
algoritma yang menyediakan fungsi sorting ini seperti pencarian biner.
Perbedaan antara sebuah Design pattern dan sebuah algoritma adalah bahwa algoritma fokus pada
implementasi solusi, sebuah algoritma biasanya mendaftar dari atas ke bawah
menuju ke tahap akhir dari action-action yang terurut dimana yang dibutuhkan
untuk menghasilkan sebuah solusi. Sebuah pattern memusatkan untuk menghasilkan beberapa
Design.
Hal tersebut memberitahu kepada pengembang apa yang harus
diperbuat sebagai lawan dari bagaimana cara melakukannya. Mungkin tidak terlihat
langsung hasilnya, tetapi kita telah siap menggunakan beberapa Design pattern
dalam pembahasan Kita sebelumnya. Satu, Kita telah belajar secara detail
pattern dari Model-View-Controller : diberikan sebuah masalah interaksi
gabungan yang begitu kompleks antara presentasi dan layer business, Hal itu
menentukan pemisahan kode menjadi tiga layer terpisah seperti
interaksi-interaksi mereka. Ingat, pattern itu sendiri tidak mendikte
implementasi, hanya dijelaskan sebuah solusi Design. Kita harus melaksanakan
pattern MVC manapun untuk untuk menggunakan framework third-party.
Design pattern dapat dibagi menjadi 3 kelompok yaitu:
1.
Creational
design pattern
Pattern ini hanya berbicara tentang
bagaimana meng-instance sebuah kelas. Secara teori memang mudah untuk membuat
object tetapi cara yang mudah tersebut belum tentu efektif. Adapun jenis-jenis
dari creational design pattern adalah Abstract
Factory, Builder, Factory Method, Object Pool, Prototype,Singleton. Dari
sekian banyak jenis-jenis tersebut ada yang memiliki fungsi yang sama dan
saling melengkapi.
2.
Structural
design patterns
Tujuan pattern ini untuk membuat class composite atau object
composite. Tujuan utamanya adalam mempermudah dalam mendefinisi kan cara untuk
meng-compose object untuk fungsionalitas yang baru. Adapun contoh dari pattern
ini adalah : Adapter pattern, bridge pattern, composite pattern, Decorator,
Facede, Flyweight, Proxy.
3.
Behavioral
design patterns
Pattern ini adalah bertujuan untuk
menangani kominikasi antar kelas atau object. Adapun contoh dari pattern ini
adalah : Chain of responsibility, Command, Interpreter, Iterator, Mediator,
Observer, strategy.
Keuntungan
Design pattern:
Pengetahuan dalam design pattern mempunyai beberapa manfaat yaitu
:
ΓΌ Memberikan komunikasi yang lebih baik antar programmer. Mempunyai pengetahuan design pattern
memberikan programmer sebuah kosa kata baru yang dapat untuk mengekspresikan
mereka sendiri kepada programmer. Sebagai ganti menguraikan sebuah masalah atau
solusi secara detail, programmer dapat menyebutkan dengan mudah design pattern yang relevan.
ΓΌ Menambah pengetahuan yang telah ada. Mempunyai pengetahuan tentang Design pattern
membiarkan Kita untuk menggunakan solusi dari programmer berbakat sebelumnya.
Terdapat sangat banyak Design pattern yang telah didokumentasikan dimana Kita
siap menambah gudang ilmu pengetahuan Kita. Pada pembahasan ini, Kita akan
fokus pada Design pattern yang telah terbukti bermanfaat dalam pembuatan
aplikasi web.
terimakasih gan, sangat membantu..
BalasHapus