KuloDev
1 Hari
0 XP
intermediate40 menitModul: 03-functional-programming-and-patterns

Design Patterns Esensial di JavaScript & TypeScript

Kuasai pola perancangan software terpopuler: Singleton, Factory, Observer/Pub-Sub, Strategy, dan Module Pattern untuk arsitektur kode yang scalable dan loosely coupled.

1. Apa itu Design Patterns?

**Design Patterns** adalah solusi umum yang teruji untuk memecahkan masalah arsitektur perangkat lunak yang berulang. Di JavaScript modern, kita sering memanfaatkan pola-pola ini untuk merancang modul, sistem event komunikasi antar komponen, dan abstraksi objek.

2. Observer / Pub-Sub Pattern (Event-Driven Architecture)

Pola Observer memungkinkan objek penerbit (*Subject/Emitter*) memberi notifikasi secara otomatis ke banyak pelanggan (*Subscribers/Listeners*) saat ada event baru terjadi, tanpa perlu saling mengenal secara langsung (*loosely coupled*).

example.js
javascript
1class EventEmitter {
2 constructor() {
3 this.events = {};
4 }
5
6 on(eventName, listener) {
7 if (!this.events[eventName]) this.events[eventName] = [];
8 this.events[eventName].push(listener);
9 }
10
11 emit(eventName, data) {
12 if (this.events[eventName]) {
13 this.events[eventName].forEach(listener => listener(data));
14 }
15 }
16}
17
18// Penggunaan:
19const bus = new EventEmitter();
20bus.on('orderPlaced', (order) => console.log('Kirim Email ke:', order.email));
21bus.on('orderPlaced', (order) => console.log('Kurangi Stok Item:', order.itemId));
22
23bus.emit('orderPlaced', { id: 'ORD-101', email: 'user@kulo.dev', itemId: 'ITM-99' });

3. Factory Pattern vs Singleton

Selesaikan Materi Ini?

Dapatkan +25 XP dan simpan progres belajarmu.