[Design Pattern Series]


Kali ini kita membahas mengenai Design Pattern, sebuah konsep yang penting dalam pemrograman berorientasi object namun jarang dibahas dalam materi kuliah (setidaknya dari pengalaman pribadi). Awal Konsep design pattern berasal dari permasalahan yang sering dihadapi oleh para code designer. Karena mereka sering menghadapi permasalahan yang bisa diselesaikan dengan solusi yang sama, akhirnya bisa diidentifikasikan sebuah pola permasalahan serta solusi penyelesaian yang dibakukan dalam sebuah Pattern.

Ada banyak buku yang membahas mengenai design pattern antara lain yang terkenal adalah buku yang dikarang oleh Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (yang dikenal dengan sebutan the gang of four) yaitu Design Pattern, Element of Reuseable Object Oriented Software. Menurut mereka ada 23 pattern yang dibagi dalam 3 kategori yaitu :

Creational Pattern — Pattern yang berhubungan dengan pembuatan instance dari Class, creational pattern terdiri dari 5 pattern yaitu:

  • Singleton
  • Factory
  • Abstract Factory
  • Builder
  • Prototype

Structural Pattern — pattern yang berhubungan dengan struktur dan keterkaitan antar object/class. Ada 7 Pattern yang termasuk dalam structural pattern yaitu:

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

Behaviour Pattern — Pattern yang berhubungan dengan tingkah laku/kebiaasaan object/class. Ada 11 pattern termasuk dalam pattern ini, yaitu:

  • Chain of Responsibility
  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template Method
  • Visitor

Design Pattern memberikan manfaat yaitu:

  1. Menyediakan cara pemecahan masalah dengan pola (pattern) yang sudah teruji kehandalannya, Sehingga kita tidak perlu mencari penyelesaian masalah.
  2. Design Pattern membuat komunikasi antar code designer menjadi lebih mudah.

Posting mendatang kita akan membahas beberapa pattern (semoga semua pattern) beserta implementasinya dalam bahasa pemrograman.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s