Solusi reusable untuk masalah umum dalam software design. 5 pattern yang paling sering dipakai.
Pastikan 1 class hanya punya 1 instance. Use case: database connection, config manager, logger. Hati-hati: bisa jadi global state yang menyusahkan testing.
Buat object tanpa expose logic creation. Use case: bikin object berbeda berdasarkan input. Contoh: ShapeFactory yang return Circle, Square, atau Triangle berdasarkan parameter.
Object (subject) notify list observer ketika ada perubahan. Use case: event listener, pub-sub system, reactive UI. JavaScript event handler adalah implementasi observer pattern.
Encapsulate algoritma dalam class terpisah, swap di runtime. Use case: payment processor (BCA, Mandiri, OVO punya strategy berbeda). Lebih flexible dari if-else chain.
Bungkus object untuk tambah behavior tanpa modify class asli. Use case: middleware (auth, logging, caching). Python decorator adalah sintaksis untuk pattern ini.