Design Pattern — Way to Improve Maintainability

Andre Septiano
3 min readApr 9, 2022

--

Dalam mengembangkan sebuah perangkat lunak tentu saja kita akan dihadapkan dengan perubahan di setiap waktunya, entah itu karena terdapat bug pada program ataupun adanya permintaan dari klien yang membutuhkan penambahan dan perubahan. Akan sangat merugikan waktu, tenaga, dan uang jika perubahan tersebut membuat para pengembang harus merombak banyak file dan bahkan harus membuat ulang segalanya dari awal. Untuk mencegah hal ini terjadi, terdapat sebuah solusi yang dinamakan Design Pattern.

Jadi, Design Pattern itu apa sih?

Mengutip dari refactoring.guru, Design Pattern merupakan sebuah solusi khusus untuk sebuah masalah yang sering muncul saat mendesain sebuah perangkat lunak. Design Pattern terlihat seperti sebuah cetak biru (blueprint) yang dapat diubah-ubah untuk memecahkan masalah yang berulang kali muncul saat merancang perangkat lunak.

Design Pattern sendiri ada beragam bentuknya, namun bisa dikelompokkan ke dalam 3 garis besar sesuai dengan tujuannya yang akan dibahas selanjutnya.

Creational Design Pattern

Illustration of Creational Design Pattern (Taken from refactoring.guru)

Design pattern dengan jenis ini menyediakan berbagai mekanisme pembuatan object dalam program, yang bertujuan untuk meningkatkan fleksibilitas dan reusing code yang sudah ada.

Contoh design pattern dengan kategori Creational:

  • Factory Method
  • Abstract Factory
  • Singleton

Structural Design Pattern

Illustration of Structural Design Pattern (Taken from refactoring.guru)

Design pattern dengan jenis ini bertujuan untuk membuat object dan class dalam program menjadi sebuah struktur yang besar namun tetap menjaga program tetap fleksibel dan efisien.

Contoh design pattern dengan kategori Structural:

  • Composite
  • Decorator
  • Adapter
  • Proxy
  • Facade

Behavioural Design Pattern

Illustration of Behavioural Design Pattern (Taken from refactoring.guru)

Design pattern dengan jenis ini ditujukan untuk menyelesaikan suatu problem dengan pemilihan algoritma yang sudah disediakan serta hubungan antar object di dalam program.

Contoh design pattern dengan kategori Behavioural:

  • Strategy
  • Observer
  • Chain of Responsibility
  • Command
  • Template Method
  • State

Sebagai contoh, saya menerapkan Proxy Pattern pada program yang tim saya kembangkan. Proxy Pattern merupakan sebuah Structural Design Pattern yang bertujuan untuk membatasi akses ke sebuah object secara langsung, entah itu untuk alasan keamanan ataupun dikarenakan object tersebut memiliki cost yang mahal untuk dibentuk. Pada potongan kode di bawah ini terdapat class subject yang asli yaitu class Pengguna, dan class proxynya yaitu class PenggunaFactory.

Dari semua bentuk dari Design Pattern, kita dapat menggunakan beberapa bentuk sekaligus dalam pengembangan perangkat lunak. Tidak perlu terpaku dengan satu bentuk saja karena beberapa Design Pattern dapat diterapkan dan digabungkan untuk menyelesaikan masalah yang muncul dalam merancang perangkat lunak.

Semoga artikel ini dapat membantu dalam memahami design pattern dan memotivasi untuk menerapkannya saat mengembangkan suatu perangkat lunak.

Referensi:

--

--