Materi 08 - Programming dan Data Science

Design Patterns Dasar

Solusi reusable untuk masalah umum dalam software design. 5 pattern yang paling sering dipakai.

Durasi 28 Menit Level intermediate Kurikulum 30 Materi

1. Singleton

Pastikan 1 class hanya punya 1 instance. Use case: database connection, config manager, logger. Hati-hati: bisa jadi global state yang menyusahkan testing.

2. Factory

Buat object tanpa expose logic creation. Use case: bikin object berbeda berdasarkan input. Contoh: ShapeFactory yang return Circle, Square, atau Triangle berdasarkan parameter.

3. Observer

Object (subject) notify list observer ketika ada perubahan. Use case: event listener, pub-sub system, reactive UI. JavaScript event handler adalah implementasi observer pattern.

4. Strategy

Encapsulate algoritma dalam class terpisah, swap di runtime. Use case: payment processor (BCA, Mandiri, OVO punya strategy berbeda). Lebih flexible dari if-else chain.

5. Decorator

Bungkus object untuk tambah behavior tanpa modify class asli. Use case: middleware (auth, logging, caching). Python decorator adalah sintaksis untuk pattern ini.

Tugas Praktik

  1. Implementasi singleton untuk Logger
  2. Buat factory untuk berbagai jenis notification
  3. Praktek observer dengan event system
  4. Refactor if-else payment ke strategy pattern
  5. Tulis decorator untuk logging function

Rangkuman