Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Melaksanakan Corak Reka Bentuk Singleton dalam C?

Bagaimana untuk Melaksanakan Corak Reka Bentuk Singleton dalam C?

DDD
Lepaskan: 2024-11-03 17:57:02
asal
406 orang telah melayarinya

How to Implement the Singleton Design Pattern in C  ?

Singleton dalam C

Dalam C , terdapat beberapa cara untuk melaksanakan corak reka bentuk Singleton, teknik yang memastikan kelas hanya mempunyai contoh tunggal. Berikut ialah dua pendekatan biasa untuk mencipta kelas Singleton:

Singleton Klasik dengan Pulangan Penunjuk

Dalam kaedah ini, kelas Singleton mengembalikan penunjuk kepada contohnya:

<code class="cpp">class A {
    private:
        static A* m_pA;
        A();
        virtual ~A();

    public:
        static A* GetInstance();
        static void FreeInstance();
        
        void WORK1();
        void WORK2();
        void WORK3();
};</code>
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini mempunyai potensi isu jika kaedah FreeInstance() dipanggil semasa objek masih mempunyai rujukan. Untuk menangani perkara ini, elakkan membebaskan objek Singleton secara manual.

Singleton dengan Reference Return

Memulangkan Singleton sebagai rujukan ialah pendekatan lain yang menawarkan keselamatan yang lebih baik:

<code class="cpp">class A {
    private:
        static A* m_pA;
        explicit A();
        void A(const A& a);
        void A(A &a);
        const A& operator=(const A& a);
        virtual ~A();

    public:
        static A* GetInstance();
        static void FreeInstance();
        
        void WORK1();
        void WORK2();
        void WORK3();
};</code>
Salin selepas log masuk

Pelaksanaan ini memastikan bahawa anda tidak boleh memusnahkan objek Singleton secara tidak sengaja.

Pertimbangan Tambahan

  • Jadikan pembina peribadi untuk mengelakkan langsung penciptaan objek.
  • Timpa pembina salinan lalai dan pengendali tugasan untuk menghalang penyalinan.
  • Gunakan kaedah statik untuk mengakses tika Singleton, menjamin penciptaan dan pemusnahannya sekali sahaja.

Untuk bacaan lanjut dan amalan terbaik tentang reka bentuk Singleton, rujuk sumber yang dicadangkan:

  • [Singleton: How Should It Be Used](https://refactoring.guru/design-patterns /singleton)
  • [C Singleton Design Pattern](https://www.learncpp.com/cpp-tutorial/singleton-design-pattern/)

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Corak Reka Bentuk Singleton dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan