Finally, ini adalah design pattern terakhir yang belum sempat gw bahas di blog ini dari 23 Design Pattern karya Gang of Four (GoF)😀. Sesuai namanya, Interpreter mengatur code menjadi kalimat sebuah bahasa, seperti bahasa SQL, HTML, scientific, atau bahasa DSL (Doman Specific Language) lainnya. Ciri-cirinya, terdapat satu interface sebagai Abstract Expression…
Gw kembali membahas seri Design Pattern selanjutnya yang belum sempat dibahas, yaitu Visitor Design Pattern. Agak males nyari contoh masalah real world-nya😅. Selain itu karena keterbatasan waktu juga sih, cukup sulit mencari waktu senggang akhir-akhir ini. Visitor Design Pattern ini merupakan salah satu Design Pattern yang agak kompleks designnya, tapi kalau…
Mediator Design Pattern juga memiliki nama lain, yaitu Controller atau Intermediary object karena tugasnya hanya sebagai penghubung antar dependency. Seperti Controller pada pola MVC yang isinya ga ada logic selain memanggil dependency object terkait. Mediator Design Pattern konsepnya seperti Orchestrator Saga Pattern pada distributed system, di mana terdapat…
Beberapa tahun belakangan Observer Design Pattern kembali populer digunakan dalam mengembangkan aplikasi. Observer Design Pattern cukup berguna terutama pada distributed system, di mana dengan Observer Design Pattern kita bisa membuat dependency antar object jadi berkurang sehingga logic antar dependency object lebih sederhana. Jadi komunikasi antar dependency…
Penggunaan Chain of Responsibility (CoR) sebenarnya tidak cukup populer karena cukup kompleks untuk system yang sederhana. Tapi menurut gw ini layak untuk dipertimbangkan ketika system yang kita bangun mulai kompleks. Apalagi kalau kita ingin mengembangkan library pihak ketiga yang nantinya akan dipakai oleh banyak orang. Tentu kita harus membuat library yang…
Design pattern ini cukup populer digunakan. Salah satu contoh class di Java yang menggunakan Iterator Design Pattern adalah Iterator. Iterator tersebut tugasnya untuk membuat berbagai collection elemennya bisa di-iterasi satu-persatu. Jadi sebuah collection kita bungkus di suatu objek yang nantinya bisa kita modifikasi atau lintasi lewat objek tersebut melalui…
Memento secara bahasa artinya kenang-kenangan atau tandamata. Sesuai namanya, Memento itu tugasnya menyimpan “kenangan” dari state suatu objek. Jadi misalkan kita sudah sampai ke state tertentu, kita bisa kembali lagi ke “kenangan” yang pernah kita simpan. Contoh analoginya adalah pada database. Misalkan kita melakukan insertion A, B, C, dan D. Lalu kita…
Composite Design Pattern bentuknya seperti hierarki objek pada Tree Structures. Design pattern ini biasanya terdiri dari satu interface yang disebut Component yang menjadi abstraksi untuk beberapa class implementation. Implementasi dari interface Component tersebut diantaranya sebagai objek tunggal yang disebut Leaf, lalu ada implementasi lainnya sebagai objek…
Terakhir gw bikin tulisan tentang design pattern sekitar 1 tahun yang lalu, abis itu ga gw lanjutin dan mulai menulis topik lainnya. Bukannya apa-apa, tapi nyari contoh real use case yang gampang dipahami itu susah😅. Kadang contoh yang sering ditemui saat googling itu terlalu kompleks untuk dipahami, atau terlalu sederhana sehingga poinnya jadi ga dapet. Makanya…
Tadinya gw ga kepikiran buat bikin design pattern ini karena dulunya saat pertama kali bikin seri tentang design pattern, gw jarang memakai design pattern ini di dunia nyata, hanya tau teorinya saja. Gw baru menemukan kasus yang cocok menggunakan design pattern ini kurang lebih beberapa bulan yang lalu. Tapi minggu lalu gw liat analytics pencarian blog gw, ada…