Rumah >hujung hadapan web >tutorial js >Singleton atau Boleh Diperhatikan? Pilihan yang Salah Boleh Membayar Kos Promosi Anda!
Corak reka bentuk adalah asas dalam mencipta perisian yang tersusun dengan baik dan mudah diselenggara. Antaranya, Singleton dan Observable sering digunakan dalam senario yang memerlukan kawalan keadaan global dan komunikasi antara bahagian sistem yang berlainan. Dalam artikel ini, kami akan meneroka cara kedua-dua piawai ini berfungsi, masa untuk menggunakannya, perbezaannya dan memberikan contoh praktikal tentang cara melaksanakannya.
Corak Singleton ialah corak reka bentuk ciptaan yang memastikan kelas hanya mempunyai satu tika dan menyediakan titik global akses kepada tika itu. Corak ini berguna apabila anda memerlukan satu objek merentas keseluruhan aplikasi, seperti tetapan global, sambungan pangkalan data atau pengurusan log.
Ciri utama Singleton ialah ia mengehadkan contoh kelas kepada objek tunggal, memastikan semua permintaan contoh mengembalikan objek yang sama. Untuk mencapai matlamat ini, corak biasanya menggunakan kaedah statik yang mencipta tika hanya apabila ia diminta buat kali pertama, menjamin penciptaan unik dan penggunaan objek di seluruh sistem.
Dalam rajah di bawah, jujukan menunjukkan cara tika Singleton dicipta dan diakses, memastikan ia unik.
Rajah jujukan Singleton menggambarkan aliran interaksi antara klien dan kelas Singleton. Proses bermula dengan pelanggan memanggil kaedah getInstance() statik untuk mendapatkan tika Singleton. Jika tika itu belum lagi dibuat, Singleton mencipta tika baharu dan mengembalikannya. Apabila klien memanggil kaedah getInstance() sekali lagi, tika yang sama dikembalikan, memastikan bahawa terdapat hanya satu tika objek Singleton semasa keseluruhan pelaksanaan program.
class Singleton { private static instance: Singleton; private constructor() { } // Método para acessar a instância única public static getInstance(): Singleton { if (!Singleton.instance) { Singleton.instance = new Singleton(); } return Singleton.instance; } public showMessage(): string { return "Esta é a única instância!"; } } // Uso do Singleton const instance1 = Singleton.getInstance(); console.log(instance1.showMessage()); // "Esta é a única instância!" const instance2 = Singleton.getInstance(); console.log(instance1 === instance2); // true
Corak Boleh Diperhatikan ialah corak reka bentuk tingkah laku yang mentakrifkan pergantungan satu-ke-banyak antara objek. Dalam erti kata lain, apabila keadaan objek ("subjek") berubah, semua tanggungannya ("pemerhati") dimaklumkan secara automatik. Corak ini digunakan secara meluas dalam sistem di mana peristiwa dan perubahan keadaan perlu disebarkan antara komponen yang berbeza, seperti antara muka grafik atau sistem pemantauan.
Corak Observable membenarkan objek untuk "memerhati" perubahan dalam keadaan objek dan bertindak balas terhadap perubahan tersebut. Coraknya berdasarkan tiga komponen utama:
Rajah jujukan boleh diperhatikan menunjukkan cara corak berfungsi dengan berbilang pemerhati. Subjek (atau objek yang diperhatikan) memberitahu semua Pemerhati berdaftar apabila perubahan keadaan berlaku. Setiap Pemerhati bertindak balas terhadap pemberitahuan itu, mengambil tindakan yang perlu berdasarkan maklumat yang diterima. Proses pemberitahuan disebarkan supaya semua pemerhati dikemas kini secara serentak, memastikan mereka disegerakkan dengan keadaan Subjek. Corak ini berguna apabila terdapat berbilang komponen atau bahagian sistem yang perlu dimaklumkan tentang perubahan dalam keadaan objek.
class Singleton { private static instance: Singleton; private constructor() { } // Método para acessar a instância única public static getInstance(): Singleton { if (!Singleton.instance) { Singleton.instance = new Singleton(); } return Singleton.instance; } public showMessage(): string { return "Esta é a única instância!"; } } // Uso do Singleton const instance1 = Singleton.getInstance(); console.log(instance1.showMessage()); // "Esta é a única instância!" const instance2 = Singleton.getInstance(); console.log(instance1 === instance2); // true
Walaupun kedua-dua corak berfungsi untuk mengurus objek dengan cara terkawal, tujuan dan gelagatnya sangat berbeza:
Característica | Singleton | Observable |
---|---|---|
Objetivo | Garantir que uma classe tenha apenas uma instância. | Notificar múltiplos objetos sobre mudanças de estado. |
Instância | Apenas uma instância é criada e compartilhada. | Vários objetos podem ser observadores de um único sujeito. |
Uso principal | Gerenciamento de recursos exclusivos. | Notificação de eventos e mudanças de estado. |
Exemplo de uso | Gerenciamento de logs ou configuração global. | Atualização de interfaces gráficas ou propagação de eventos. |
Objektif
Corak Singleton dan Boleh diperhatikan
adalah asas dalam beberapa situasi dalam pembangunan perisian.Atas ialah kandungan terperinci Singleton atau Boleh Diperhatikan? Pilihan yang Salah Boleh Membayar Kos Promosi Anda!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!