


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.
Apa itu Singleton?
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.
Bagaimanakah Singleton berfungsi?
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.
Contoh Penggunaan - Singleton dalam TypeScript
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
Bila hendak menggunakan Singleton?
- Tetapan Global: Apabila anda memerlukan satu contoh untuk menyimpan tetapan sistem, seperti pembolehubah persekitaran.
- Pengurusan sambungan: contohnya, untuk mengurus sambungan ke pangkalan data atau pelayan API.
- Pengurusan sumber: apabila perlu untuk mengawal akses kepada sumber unik, seperti pembalak atau cache.
Apakah yang Boleh Diperhatikan?
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.
Bagaimanakah Observable berfungsi?
Corak Observable membenarkan objek untuk "memerhati" perubahan dalam keadaan objek dan bertindak balas terhadap perubahan tersebut. Coraknya berdasarkan tiga komponen utama:
- Subjek: objek yang mengekalkan keadaan dan menghantar pemberitahuan kepada pemerhati.
- Pemerhati: objek yang berminat dengan keadaan perubahan Subjek.
- Langganan: mekanisme yang membenarkan Pemerhati melanggan atau menyahlanggan pemberitahuan Subjek.
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.
Contoh Penggunaan - Boleh diperhatikan dalam TypeScript
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
Bila hendak menggunakan Observable?
- Acara dalam antara muka grafik: untuk bertindak balas terhadap klik butang, perubahan medan atau kemas kini skrin.
- Pemberitahuan perubahan keadaan: apabila beberapa komponen perlu dimaklumkan tentang perubahan pada objek.
- Pemodelan aliran data reaktif: dalam sistem yang terdapat penyebaran data atau peristiwa antara berbilang sistem, seperti dalam aplikasi berasaskan peristiwa.
Perbezaan antara Singleton dan Observable
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. |
Boleh diperhatikan
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!

Penjelasan terperinci mengenai kaedah penggantian rentetan javascript dan Soalan Lazim Artikel ini akan meneroka dua cara untuk menggantikan watak rentetan dalam JavaScript: Kod JavaScript dalaman dan HTML dalaman untuk laman web. Ganti rentetan di dalam kod JavaScript Cara yang paling langsung ialah menggunakan kaedah pengganti (): str = str.replace ("cari", "ganti"); Kaedah ini hanya menggantikan perlawanan pertama. Untuk menggantikan semua perlawanan, gunakan ungkapan biasa dan tambahkan bendera global g: str = str.replace (/fi

Artikel membincangkan membuat, menerbitkan, dan mengekalkan perpustakaan JavaScript, memberi tumpuan kepada perancangan, pembangunan, ujian, dokumentasi, dan strategi promosi.

Artikel ini membincangkan strategi untuk mengoptimumkan prestasi JavaScript dalam pelayar, memberi tumpuan kepada mengurangkan masa pelaksanaan dan meminimumkan kesan pada kelajuan beban halaman.

Bawa kesan filem matriks ke halaman anda! Ini adalah plugin jQuery yang sejuk berdasarkan filem terkenal "The Matrix". Plugin mensimulasikan kesan aksara hijau klasik dalam filem, dan hanya pilih gambar dan plugin akan mengubahnya menjadi gambar gaya matriks yang diisi dengan aksara angka. Datang dan cuba, sangat menarik! Bagaimana ia berfungsi Plugin memuat imej ke kanvas dan membaca nilai piksel dan warna: data = ctx.getimagedata (x, y, settings.grainsize, settings.grainsize) .data Plugin dengan bijak membaca kawasan segi empat tepat gambar dan menggunakan jQuery untuk mengira warna purata setiap kawasan. Kemudian, gunakan

Artikel ini membincangkan debugging JavaScript yang berkesan menggunakan alat pemaju pelayar, memberi tumpuan kepada menetapkan titik putus, menggunakan konsol, dan menganalisis prestasi.

Artikel ini akan membimbing anda untuk membuat karusel gambar mudah menggunakan perpustakaan jQuery. Kami akan menggunakan perpustakaan BXSlider, yang dibina di atas jQuery dan menyediakan banyak pilihan konfigurasi untuk menubuhkan karusel. Pada masa kini, Gambar Carousel telah menjadi ciri yang mesti ada di laman web - satu gambar lebih baik daripada seribu perkataan! Selepas membuat keputusan untuk menggunakan karusel gambar, soalan seterusnya adalah bagaimana untuk menciptanya. Pertama, anda perlu mengumpul gambar-gambar resolusi tinggi yang berkualiti tinggi. Seterusnya, anda perlu membuat karusel gambar menggunakan HTML dan beberapa kod JavaScript. Terdapat banyak perpustakaan di web yang dapat membantu anda membuat karusel dengan cara yang berbeza. Kami akan menggunakan Perpustakaan BXSlider Sumber Terbuka. Perpustakaan BXSlider menyokong reka bentuk responsif, jadi karusel yang dibina dengan perpustakaan ini dapat disesuaikan dengan mana -mana

Mata utama yang dipertingkatkan penandaan berstruktur dengan JavaScript dapat meningkatkan kebolehcapaian dan pemeliharaan kandungan laman web sambil mengurangkan saiz fail. JavaScript boleh digunakan secara berkesan untuk menambah fungsi secara dinamik ke elemen HTML, seperti menggunakan atribut CITE untuk memasukkan pautan rujukan secara automatik ke dalam rujukan blok. Mengintegrasikan JavaScript dengan tag berstruktur membolehkan anda membuat antara muka pengguna yang dinamik, seperti panel tab yang tidak memerlukan penyegaran halaman. Adalah penting untuk memastikan bahawa peningkatan JavaScript tidak menghalang fungsi asas laman web; Teknologi JavaScript Lanjutan boleh digunakan (

Set data sangat penting dalam membina model API dan pelbagai proses perniagaan. Inilah sebabnya mengapa mengimport dan mengeksport CSV adalah fungsi yang sering diperlukan. Dalam tutorial ini, anda akan belajar cara memuat turun dan mengimport fail CSV dalam sudut


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Dreamweaver Mac版
Alat pembangunan web visual

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Dreamweaver CS6
Alat pembangunan web visual

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini