Refactoring & Design Pattern

Luqman Iffan Windrawan
PDB+R
Published in
2 min readApr 30, 2019

Halo teman-teman! Kemnali lagi bersama saya, Luqman! Kali ini saya akan membahas tentang Refactoring & Design Pattern!

Design Pattern

Refactoring?

Refactoring adalah proses pengubahan sebuah software (seperti penamaan, letak, dan lain-lain) tanpa mengubah behaviour-nya. Refactoring dilakukan untuk memperbagus code yang sudah ada dan mencegah kerusakan.

Code refactoring dilakukan agar bisa lebih mudah dipahami dan menjaga kemudahan maintenance code di kemudian hari.

Design Pattern?

Design pattern merupakan sebuah template yang dapat digunakan dalam mengembangkan suatu code. Design Pattern bukanlah suatu desain yang sudah selesai dan bisa diubah ke code yang kita mau.

Design Pattern bisa mempercepat pengembangan suatu code, karena sudah tested dan terbukti keefektifannya.

Berikut adalah ke-3 kelompok design pattern:

Creational Design Pattern

Design Patternn ini berkaitan dengan class instatiation. Berikut adalah jenis-jenisnya:

  1. Abstract Factory
  2. Builder
  3. Factory Method
  4. Object Pool
  5. Method
  6. Singleton

Structural Design Pattern

Design Pattern ini berkaitan dengan komposisi class dan object. Berikut adalah jenis-jenisnya:

  1. Adapter
  2. Bridge
  3. Composite
  4. Decorator
  5. Facade
  6. Flyweight
  7. Private Class Data
  8. Proxy

Behavioral Design Pattern

Design Pattern ini berkaitan dengan komunikasi antar object. Berikut adalah jenis-jenisnya:

  1. Chain of Responsibility
  2. Command
  3. Interpreter
  4. Iterator
  5. Mediator
  6. Memento
  7. Null Object
  8. Observer
  9. State
  10. Strategy
  11. Template Method
  12. Visitor

Implementasi pada SISIDANG-NG

Pada proyek kami, kami menggunakan Design Pattern MTV (Models Views Template). MTV adalah gabungan dari design pattern composite (tree), strategy (enkapsulasi algoritma), dan observer (notifikasi ke kelas lain berupa models).

MTV sering digunakan pad aaplikasi berbasis website, salah satunya adalah framework Django yang kami pakai.

  • Models: models.py — Berfungsi untuk manipulasi data
models.py pada Ruangan
  • Templates: templates.html — Sebagai tampilan interface user
create_ruangan.html
  • Views: views.py — Sebagai pengontrol aplikasi
views.py pada Ruangan

Yap, sekian untuk hari ini, semoga kita semua mendapat hal baru untuk dipelajari. Sampai jumpa!

--

--