Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 15843|Jawab: 0

[Sumber] Analisis metode statis dan pola singleton

[Salin tautan]
Diposting pada 10/10/2019 18.15.05 | | |
Kita sering mengalami kebingungan dalam pemrograman, beberapa fungsi diselesaikan menggunakan singleton, dan beberapa fungsi diselesaikan menggunakan metode statis, jadi apa prinsip dan skenario penggunaan metode statis dan singleton? Mari kita perjelas masalah ini hari ini.

1. Pertama-tama mari kita lihat perbedaan antara metode statis dan metode non-statis?

        Banyak programmer memiliki pemahaman bahwa metode statis memuat terlebih dahulu, metode non-statis dimuat kemudian, metode statis akan selalu ada di memori, dan metode non-statis tidak. Oleh karena itu, disarankan untuk menggunakan metode non-statis. Pertama-tama, adalah salah untuk menekankan bahwa pemahaman ini salah.

        Pertama-tama, mari kita analisis dari memori, ketika aplikasi diinisialisasi, CLR (CLR adalah Common Language Runtime) juga merupakan lingkungan runtime seperti mesin virtual Java, yang bertanggung jawab atas manajemen sumber daya (alokasi memori dan pengumpulan sampah, dll.) dan memastikan pemisahan yang diperlukan antara aplikasi dan sistem operasi yang mendasarinya. CLR memiliki dua nama terjemahan yang berbeda: Common Language Runtime dan Common Language Runtime. Mengalokasikan ruang alamat ke setiap proses di ruang proses yang tersedia, yang merupakan tumpukan terkelola. Tumpukan terkelola dibagi menjadi beberapa wilayah, yang paling penting adalah tumpukan pengumpulan sampah (Tumpukan GC) dan tumpukan pemuat (Tumpukan Loader), yang digunakan untuk menyimpan instans objek dan dikelola oleh GC. Informasi terpenting yang disimpan Loader Heap melalui tabel MethodTable adalah informasi terkait metadata, seperti jenis dasar, bidang statis, antarmuka implementasi, dan semua metode. Loader Heap tidak menerima kontrol GC, dan siklus hidupnya adalah dari pembuatan hingga kehancuran. Dengan kata lain, setelah kelas dimuat, metode statis dan non-statis dari kelas ini disimpan dalam tabel MethodTab dari Load Heap, tanpa kontrol GC, dan semuanya berada di memori untuk beban pertama.

        Apa perbedaan antara metode statis dan metode non-statis? Perbedaannya adalah saat membuat objek, metode statis hanya memiliki salinan, sedangkan metode non-statis akan menyalin salinan informasi tentang instance ini di GC Heap untuk setiap objek baru baru, dan pada saat yang sama menempatkan objek baru di tumpukan. Alamat yang ditunjuk oleh penunjuk tumpukan adalah alamat memori yang baru saja disalin ke GC Heap. Oleh karena itu, dalam hal kecepatan panggilan metode, metode statis lebih cepat karena metode non-statis perlu dibuat-instans dan mengalokasikan memori.

Dari perspektif sejarah pemrograman, hampir semua metode pemrograman terstruktur awal adalah metode statis, dan pengenalan metode instansiasi adalah masalah pemrograman berorientasi objek, sehingga metode instansiasi tidak untuk memecahkan masalah efisiensi dan memori berjalan. Ini untuk membuat pembangunan lebih berpola dan berorientasi objek.

        Dari analisis di atas, kesimpulan dapat ditarik: 1. Metode statis dan metode non-statis adalah perbedaan antara mode solusi. 2. Jika pewarisan, polimorfisme, atau jika suatu metode tidak ada hubungannya dengan objek kelasnya, Anda harus memilih metode statis, seperti kelas alat.        

2. Apa perbedaan antara mode singleton dan metode statis?

        Terkadang kita perlu memelihara sepotong informasi dalam teknik, seperti beberapa atribut konfigurasi yang dimuat saat runtime, yang harus ada sepanjang masa pakai aplikasi dan bersifat publik, jadi hanya satu salinan yang diperlukan. Pada saat ini, kita akan mempertimbangkan untuk menggunakan metode singleton atau statis untuk mempertahankan data ini, tetapi saat ini, data ini diperoleh dengan cara yang berorientasi objek, kita akan menggunakan singleton.

        Pertama, metode statis berbasis kelas, dan singleton berbasis objek. Jika pola resolusi berbasis objek, gunakan singleton, jika tidak, gunakan pendekatan statis. Misalnya, Anda perlu mewarisi kelas, mengimplementasikan antarmuka, menunda inisialisasi, menulis ulang kelas induk, dll. Untuk menggunakan singleton, kedua, metode statis berorientasi pada proses, dan singleton berorientasi objek. Ketiga, variabel atribut statis tidak akan dihapus oleh GC, sehingga objek singleton tidak akan dihapus oleh GC, dan objek yang dihasilkan dalam metode statis akan dirilis saat metode statis dieksekusi.




Mantan:Praktek Middleware Pesan Terdistribusi (oleh Ni Wei) PDF Bahasa Cina Lengkap
Depan:Masalah shutdown laptop Dell Latitude 5501 dan daya otomatis diselesaikan
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com