Sebagai kelanjutan dari 
artikel sebelumnya tentang keadaan umum untuk komponen , saya akan mengembangkan topik lebih lanjut dan ingin mengimplementasikan fitur yang akan menangkap dan memproses peristiwa perubahan keadaan di setiap komponen (ketika data dalam keadaan umum berubah di beberapa komponen).
Tautan ke proyekBiasanya, untuk melacak perubahan data dalam suatu komponen, koneksi langsung dibuat, yaitu, kami memeriksa metode Pembaruan apakah data telah berubah di sana.
 Preframe verifikasi data melalui metode Pembaruan
Preframe verifikasi data melalui metode Pembaruanatau kami berlangganan ke acara yang sangat spesifik, yang disebut secara independen dalam komponen "dilacak", dan kemudian diproses nanti.
 Berlangganan acara di komponen dan memprosesnya
Berlangganan acara di komponen dan memprosesnyaAda banyak kekurangan dalam pendekatan ini, yang sebagian besar dijelaskan dalam artikel sebelumnya. Alasan umum utama untuk kekurangan ini adalah koherensi yang kuat dan pemeliharaan yang kompleks (kemampuan untuk mendukung, mengembangkan proyek, dan refactor).
Membuat Solusi Pemberitahuan Negara
Sekarang setelah Anda memiliki sistem yang memungkinkan Anda melonggarkan koneksi antar komponen dan sarana untuk membuat surat antar komponen, Anda dapat menyingkirkan pemeriksaan nilai secara manual dalam kondisi umum, sebagai berikut:
 Skema Pemberitahuan Perubahan Status Umum
Skema Pemberitahuan Perubahan Status UmumDalam implementasi yang dijelaskan dalam artikel sebelumnya, data diubah di satu tempat, di pengindeks komponen SharedState, dan oleh karena itu sangat mudah untuk mengontrol perubahan mereka.
 Pengindeks dalam kondisi umum
Pengindeks dalam kondisi umumDi setter pengindeks, kami menetapkan nilai status.
Sekarang, untuk komponen 
SharedState , Anda perlu menambahkan ketergantungan pada 
SharedEvents , karena saya akan menggunakannya untuk mengirim pemberitahuan. Tambahkan atribut untuk 
SharedState. Menambahkan ketergantungan SharedState dari SharedEvents
Menambahkan ketergantungan SharedState dari SharedEventsDan buat kelas yang mewarisi dari EventData untuk mengirim data dalam pemberitahuan status. Ini akan berisi nama parameter, dalam keadaan dan nilai baru
 Menambahkan kelas yang berisi informasi tentang perubahan dalam keadaan umum
Menambahkan kelas yang berisi informasi tentang perubahan dalam keadaan umumSekarang Anda perlu menambahkan tautan ke 
SharedEvents , mendapatkannya dari objek game di komponen 
SharedState Mendapatkan SharedEvents di Komponen SharedState
Mendapatkan SharedEvents di Komponen SharedStateSekarang kami akan mengubah setter pengindeks sehingga setiap kali status berubah, pemberitahuan dengan nama "sharedstatechanged" dibuat dan kami meneruskan objek yang berisi semua data tentang perubahan
 Ubah setter pengindeks
Ubah setter pengindeksSekarang tetap berlangganan perubahan dalam suatu komponen, ubah data di komponen lain dan periksa cara kerjanya.
Katakanlah 
status perubahan 
SecondComponent , misalnya, parameter "somedata", dan komponen 
FirstComponent memonitor perubahan status dengan berlangganan pemberitahuan
Dalam 
SecondComponent, kami memanggil perubahan parameter
 Ubah Panggilan Data
Ubah Panggilan DataDan sekarang dalam metode 
FirstComponent kami menambahkan penangan dan 
mencetak informasi tentang perubahan keadaan umum ke konsol
 Perubahan Status Umum Penanganan Acara
Perubahan Status Umum Penanganan AcaraSekarang, jika Anda memulai permainan, setelah keadaan umum diubah di 
SecondComponent , di komponen 
FirstComponent kami akan menerima pemberitahuan dan menampilkan data ke konsol

Sekarang ini berfungsi, Anda dapat sedikit refactor dan membuat kode lebih nyaman. Untuk melakukan ini, Anda harus mentransfer langganan pemberitahuan perubahan dalam keadaan umum ke kelas dasar 
SharedStateComponent dan membuat metode abstrak, dengan menerapkan setiap komponen yang akan memproses perubahan status di dalamnya atau tidak, sesuai kebijakan komponen.
Mentransfer langganan ke 
SharedStateComponent Berlangganan pemberitahuan perubahan dalam kondisi umum di kelas dasar
Berlangganan pemberitahuan perubahan dalam kondisi umum di kelas dasarTambahkan metode abstrak dan panggil di event handler
 Menambahkan metode abstrak untuk menangani acara di kelas anak
Menambahkan metode abstrak untuk menangani acara di kelas anakDan sekarang, di setiap komponen anak dari 
FirstComponent dan 
SecondComponent, Anda perlu mengimplementasikan metode ini dan memproses perubahan dalam keadaan umum di dalamnya. Tapi kami hanya akan mencetaknya ke konsol seperti sebelumnya
 Menerapkan metode abstrak dalam komponen FirstComponent dan SecondComponent
Menerapkan metode abstrak dalam komponen FirstComponent dan SecondComponentDan sekarang ketika kita memulai permainan, kita akan melihat 2 entri di konsol, dari kedua komponen.

Penting!
Dalam implementasi sebelumnya, ada bug di kelas 
SharedEvents, dan untuk memperbaikinya Anda perlu mengubah metode 
Berlangganan ke:
