Bernad Pakpahan Blog

real Geek or young Entrepreneur?
See also: Other Geeks@INDC

Design Patterns? Why not?

Setelah membaca buku Design Patternnya GoF dan mencoba penerapannya di C#, ada hal baru yang kudapatkan. Ternyata Design Pattern tidak seseram yang selama ini aku bayangkan, seperti materi konseptual lainnya seperti OOAD, Extreme Programming (yang biasanya membuat aku mengantuk membacanya :P). Malahan ada beberapa pattern yang selama ini tidak asing  bagiku seperti factory, prototype, singleton, proxy, adapter, template, observer dan state. Pattern-pattern ini sering aku pakai dan temui diberbagai open-source project. Malahan API/languange di .NET sudah terconstruct menggunakan design Pattern seperti iterator.

Beberapa pattern termasuk baru bagiku. beberapa diantaranya cukup sulit dimengerti. Apa lagi pattern-pattern yang  memiliki fungsi yang cukup mirip seperti decorator, adapter dan factory.
Pattern-pattern ini mengubah interface sebuah atau beberapa class agar lebih cocok/tepat digunakan pada program tertentu. The big challange bagiku adalah bagaimana dan kapan sebuah pattern digunakan? jangan sangking tergila-gila dengan "design pattern" semua implemantasi "dipaksakan" menerapkan design pattern. Kemampuan analisa sangat dibutuhkan disini. Aku sendiri masih belum mature dalam "design pattern". Cukup sulit menentukan pattern yang tepat untuk study case tertentu. Dibutuhkan pengalaman dan pengetahuan OOP yang cukup advance untuk mature dalam design pattern.

Namun dalam mencari resource yang berhubungan dengan "design pattern", aku menemukan sebuah artikel yang menarik untuk newbie. Artikel ini berjudul "Non-Software Examples of Software Design Patterns" karangan Michael Duell. Sangat menarik, artikel ini sangat membantu aku dalam memahami "design pattern" dengan perumpamaan kehidupan kita sehari-hari.

Sebagai contoh untuk proxy pattern, Michael Duell mencontohkannya sebagai sebuah cek. Cek seperti halnya proxy merupakan "surrogate" yang mewakili object target. Cek mewakili object uang dengan jumlah tertentu. Jika seorang mencairkan cek tersebut dia akan akan mendapatkan uang yang menjadi object sesungguhnya, sama halnya dengan proxy, jika si user mengaksesnya, proxy akan menghubungkannya dengaan object sebenarnya.

Contoh lainnya adalah Observer yang diumpamakan sebagai sebuah pelelangan, Setiap bid dari seorang peserta selalu dipublish/diberitahukan kesemua peserta lelang, Peserta lelang dapat mengetahi posisi bid tanpa harus tahu siapa melakukan bid tersebut. Demikianpula observer pattern, yang biasa juga disebut publish-subscribe. Ketika sebuah object mengubah statenya (publishser), maka object dependent lainnya (subscriber) akan diberitahu, dan subscriber akan terupdate secara otomatis.

http://www2.ing.puc.cl/~jnavon/IIC2142/patexamples.htm

Setiap pattern diumpamakan dalam kehidupan sehari-hari dengan baik. Jadi betul juga kata om Norman bahwa design pattern itu bukanlah sebuah penciptaan, namun tak lebih dari sebuah penemuan. Karena jauh sebelum kita mengenal dunia programming, kita sudah menggunakan dengan baik. It's amazing... 

Tapi anehnya kok belum ada artikel atau buku yang membahas design pattern secara lengkap dalam bahasa Indonesia. Mungkin materi ini bisa menjadi salah proyek dalam project otak.

 

Share this post: | | | |
Posted: Mar 16 2006, 08:16 PM by bernardpakpahan | with 3 comment(s)
Filed under:

Comments

bernardpakpahan said:

test
# March 16, 2006 11:51 PM

bernardpakpahan said:

Wow .... komentar yang cukup bagus man. yang seperti ini layak dishare, terutama bagi temen2 yang berniat untuk update knowlede, skill and bercita-cita jadi Architect .. like me lah.....
# March 30, 2006 2:21 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 
Are you human?:  


Enter the numbers above: