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:
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, &createObject<S> ) ); } bool hasClass(K id){ return mObjectCreator.find(id) != mObjectCreator.end(); } T* createObject(K id){ return ((*mObjectCreator[id])(); } };</code>
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!