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.
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 dibagi menjadi 3 Kelompok yaitu :
- 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.
- 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.
- 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.
Apa itu Observer pada design Pattern?
Observer adalah pola desain software dimana suatu objek
mempunyai daftar objek yang mamiliki ketergantungan / dependencies. Pola desain
Observer dapat digunakan setiap kali subjek harus diamati oleh satu atau lebih
Observer. Diasumsikan bahwa kita memiliki stock system yang menyediakan data
untuk beberapa jenis client. Penerapan pola desain ini yaitu dengan
mengimplementasikan client sebagai aplikasi berbasis web, tapi dalam waktu
dekat kita perlu menambahkan client untuk perangkat mobile, Palm maupun pocket
PC, atau sistem yang dapat memberi notifikasi kepada user menggunakan pesan
singkat. Observable – interface atau kelas abstrak yang mendefinisikan operasi
unutk melampirkan dan memisahkan observer ke client. Biasa dikenal sebagai
subjek. ConcreteObservable – perwujudan kelas Observable. Mempertahankan state
dari suatu objek dan apabila terjadi perubahan, observer akan diberikan
notifikasi. Observer – interface atau kelas abstrak yang mendefinisikan operasi
yang digunakan untuk memberi notifikasi objek. ConcreteObserverA,
ConcreteObserverB – implementasi nyata dari Observer Prinsip dari observer
pattern ini adalah ketika ada perubahan status di Subject, maka akan
diberitahukan secara otomatis ke Observer (biasanya dengan memanggil suatu
method) sehingga Subscriber akan menerima perubahan data seketika. Tujuannya
dari Observer pattern adalah mendefiniskan hubungan one-to-many antar object sehingga ketika sebuah object berubah
state-nya, object-object lain yang bergantung juga ikut berubah..
Java Observer Class Diagram
Contoh Program observer
Untuk contoh pengamatan di java , kita akan
mengimplementasikan topic yang sederhana dan pengamat dapat mendaftar ke topik
ini. Semua pesan baru akan di post ke topik, semua pengamat yang terdaftar akan
diberikan pemberitahuan dan mereka bias melihat isi pesannya.
Selanjutnya membuat kontrak untuk observer / pengamat , aka
nada medode untuk melampirkan subjek ke pengamat dan metode lain yang akan
digunakan oleh subject untuk pemberitahuan semua yang berubah
Sekarang kontrak sudah siap untuk di implementasikan ke
topik yang dibuat
Ini adalah program sederhana untuk mengetes
menggunakan topik yang sudah di implementasikan.
Outputnya :
Judul Contoh Paper Penerapan Design Pattern
"Penerapan Design Patttern untuk Implementasi Alat Bantu Requirement Management berbassis komputer genggam"
Referensi :
Tidak ada komentar:
Posting Komentar