Bolehkah Corak Reka Bentuk Singleton Mengembalikan Rujukan Daripada Penunjuk?

Patricia Arquette
Lepaskan: 2024-11-02 06:33:03
asal
611 orang telah melayarinya

Can Singleton Design Patterns Return References Instead of Pointers?

Bolehkah Corak Reka Bentuk Singleton Mengembalikan Rujukan Daripada Penunjuk?

Pendekatan konvensional dalam C untuk mencipta singleton melibatkan pengembalian penuding kepada instantiated objek. Walau bagaimanapun, teknik alternatif dicadangkan: sebaliknya mengembalikan rujukan.

Pendekatan ini kelihatan logik kerana ia menghapuskan tanggungjawab membebaskan objek tunggal secara manual. Sebabnya terletak pada kesukaran untuk menentukan siapa yang mengekalkan rujukan kepada singleton, menjadikannya tidak bijak untuk mencuba deallocation manual.

Menggunakan kaedah fungsi statik mencapai kedua-dua permulaan yang malas dan memastikan objek itu dicipta dan dimusnahkan hanya sekali:

<code class="cpp">class S
{
    public:
        static S& getInstance()
        {
            static S    instance;
            return instance;
        }
    private:
        S() {}
        S(S const&);              // Don't Implement.
        void operator=(S const&); // Don't implement
 };</code>
Salin selepas log masuk

Selain itu, pembina mesti dijadikan peribadi dan pembina salinan lalai dan pengendali tugasan mesti ditindih untuk mengelakkan penyalinan dan dengan itu mengekalkan sifat tunggal.

Walau bagaimanapun, ia adalah penting untuk ambil perhatian bahawa teknik ini mungkin tidak memberikan keselamatan benang dalam semua senario. Dalam kes sedemikian, pertimbangkan sumber berikut:

  • https://stackoverflow.com/a/1008289/14065
  • Singleton: Bagaimana ia harus digunakan
  • C Corak reka bentuk Singleton

Ingat untuk menilai dengan teliti sebab menggunakan singleton untuk memastikan ia adalah pilihan reka bentuk yang sesuai.

Atas ialah kandungan terperinci Bolehkah Corak Reka Bentuk Singleton Mengembalikan Rujukan Daripada Penunjuk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!