Menerapkan Pola Desain Pengamat di TypeScript

Menerapkan Pola Desain Pengamat di TypeScript

Pola desain adalah templat yang memecahkan masalah yang sering muncul dalam desain perangkat lunak.





Pola pengamat, juga dikenal sebagai pola publish-subscribe, adalah pola perilaku. Ini memungkinkan Anda untuk memberi tahu beberapa objek atau pelanggan tentang peristiwa apa pun yang dipublikasikan di objek yang mereka amati.





apa alamat ip ponsel saya
VIDEO MAKEUSEOF HARI INI

Di sini Anda akan belajar bagaimana menerapkan pola desain pengamat di TypeScript.





Pola Pengamat

Pola pengamat bekerja dengan mendefinisikan hubungan satu-ke-banyak antara penerbit dan pelanggannya. Ketika sebuah acara terjadi di penerbit, itu akan memberi tahu semua pelanggan acara itu. Salah satu contoh luas dari pola ini adalah pendengar acara JavaScript .

Untuk konteksnya, anggap Anda sedang membangun pelacak inventaris yang melacak jumlah produk di toko Anda. Dalam hal ini, toko Anda adalah subjek/penerbit, dan inventaris Anda adalah pengamat/pelanggan. Menggunakan pola desain pengamat akan optimal dalam situasi ini.



cara menjalankan game pc lama di windows 10

Dalam pola desain pengamat, kelas subjek Anda harus menerapkan tiga metode:

  • Sebuah menempel metode. Metode ini menambahkan pengamat ke subjek.
  • SEBUAH melepaskan metode. Metode ini menghilangkan pengamat dari subjek.
  • SEBUAH beri tahu/perbarui metode. Metode ini memberi tahu pengamat subjek ketika keadaan berubah pada subjek.

Kelas pengamat Anda harus menerapkan satu metode, yaitu memperbarui metode. Metode ini bereaksi ketika ada perubahan status subjeknya.





Menerapkan Kelas Subjek dan Pengamat

Langkah pertama untuk menerapkan pola ini adalah membuat antarmuka untuk kelas subjek dan pengamat, untuk memastikan bahwa mereka menerapkan metode yang benar:

// Subject/Publisher Interface 
interface Subject {
attachObserver(observer: Observer): void;
detachObserver(observer: Observer): void;
notifyObserver(): void;
}

// Observer/Subscriber Interface
interface Observer {
update(subject: Subject): void;
}

Antarmuka dalam blok kode di atas menentukan metode yang harus diterapkan oleh kelas konkret Anda.





Kelas Mata Pelajaran Konkret

Langkah selanjutnya adalah mengimplementasikan kelas mata pelajaran konkrit yang mengimplementasikan Subjek antarmuka:

// Subject 
class Store implements Subject {}

Selanjutnya, inisialisasi Subjek keadaan di Toko kelas. Pengamat subjek akan bereaksi terhadap perubahan keadaan ini.

Dalam hal ini, keadaan adalah angka, dan pengamat akan bereaksi terhadap peningkatan angka:

cara memainkan game play station 2 di pc
// Subject state 
private numberOfProducts: number;

Selanjutnya, inisialisasi array pengamat. Array ini adalah cara Anda melacak pengamat:

// initializing observers 
private observers: Observer[] = [];