Bagaimanakah Corak Kilang boleh dimanfaatkan untuk Pensirian Objek dalam C?

Susan Sarandon
Lepaskan: 2024-11-01 09:11:01
asal
977 orang telah melayarinya

How can the Factory Pattern be leveraged for Object Serialization in C  ?

Siri Objek dalam C Menggunakan Corak Kilang

Dalam C , siri melibatkan penukaran keadaan objek kepada aliran untuk penyimpanan atau penghantaran dan kemudiannya membina semula objek daripada aliran. Pendekatan yang biasa digunakan ialah menggunakan ID kelas untuk penyirian dan penyahsirilan, tetapi ini boleh dianggap sebagai anticorak.

Tingkatkan Sirialisasi

Satu alternatif ialah menggunakan perpustakaan seperti Boost Serialisasi . Pustaka ini menyediakan rangka kerja komprehensif untuk pensirilan objek, mengendalikan butiran peringkat rendah dan menawarkan antara muka yang mesra pengguna.

Corak Kilang dengan Kelas Berdaftar

Pendekatan lain ialah untuk menggunakan corak kilang dengan kelas berdaftar. Begini caranya:

  1. Buat kelas kilang yang menyimpan peta antara kunci (ID kelas) dan penunjuk fungsi yang dipanggil "pencipta."
  2. Daftar kelas dengan kilang dengan memanggil kaedah registerClass() factory, menghantar ID kelas dan fungsi pencipta untuk kelas itu.
  3. Laksanakan fungsi pencipta sebagai fungsi ahli statik yang mencipta tika kelas masing-masing.
  4. Untuk mencipta objek daripada kelas, panggil kaedah createObject() kilang dengan ID kelas yang sepadan.

Contoh Kod

Kod C berikut menunjukkan pelaksanaan kilang objek:

<code class="cpp">template<typename K, typename T>
class Factory { 
    typedef T *(*CreateObjectFunc)();

    std::map<K, CreateObjectFunc> mObjectCreator;

    template<typename S> 
    static T* createObject(){ 
        return new S(); 
    }
public:

    template<typename S> 
    void registerClass(K id){ 
        mObjectCreator.insert( std::make_pair<K,CreateObjectFunc>(id, &amp;createObject<S> ) ); 
    }

    bool hasClass(K id){
        return mObjectCreator.find(id) != mObjectCreator.end();
    } 

    T* createObject(K id){
        return ((*mObjectCreator[id])();
    }
};</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Corak Kilang boleh dimanfaatkan untuk Pensirian Objek dalam C?. 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!