Rumah >pembangunan bahagian belakang >C++ >Apakah corak reka bentuk C++ untuk sistem terbenam?
Corak reka bentuk C++ yang dibenamkan boleh digunakan untuk mencipta kod yang cekap dan boleh dipercayai, sesuai untuk persekitaran yang dikekang sumber: Corak Singleton: memastikan bahawa terdapat hanya satu contoh kelas tertentu yang digunakan untuk mengurus sumber. Corak pemerhati: membenarkan objek melanggan objek lain dan menerima pemberitahuan perubahan keadaan. Corak Kaedah Kilang: Mencipta objek berdasarkan jenis tanpa menyatakan kelas yang tepat. Kes praktikal: Sistem penjadualan tugas menggunakan mod ini untuk mencapai penjadualan tugas yang cekap dan memastikan pelaksanaan tugas utama yang boleh dipercayai.
C++ Reka Bentuk Corak untuk Sistem Terbenam
Pengenalan
Sistem terbenam biasanya berjalan dalam persekitaran yang terhad sumber dan perlu cekap dan boleh dipercayai. Corak reka bentuk C++ membantu jurutera mencipta kod terbenam yang ringkas, boleh diselenggara dan berskala.
C++ Reka Bentuk Corak untuk Sistem Terbenam
Singleton Pattern: Memastikan bahawa hanya terdapat satu contoh kelas tertentu dalam aplikasi yang boleh digunakan untuk mengurus sumber.
class Singleton { private: Singleton() {} // 私有构造函数,防止直接创建 static Singleton* instance_; public: static Singleton* getInstance() { if (!instance_) { instance_ = new Singleton; } return instance_; } };
Corak Pemerhati: Membenarkan objek melanggan objek lain dan menerima pemberitahuan tentang perubahan keadaannya.
class Observable { private: std::vector<Observer*> observers_; public: void attach(Observer* observer) { observers_.push_back(observer); } void detach(Observer* observer) { observers_.erase(std::remove(observers_.begin(), observers_.end(), observer)); } void notify() { for (auto& observer : observers_) { observer->update(); } } }; class Observer { public: virtual void update() = 0; }; class ConcreteObserver1 : public Observer { public: void update() { std::cout << "ConcreteObserver1: Received update." << std::endl; } };
Corak Kaedah Kilang: Buat pelaksanaan konkrit objek tanpa menyatakan kelasnya yang tepat.
class Shape { public: virtual double getArea() = 0; virtual double getPerimeter() = 0; }; class Circle : public Shape { public: double getArea() override { return 3.14 * radius_; } double getPerimeter() override { return 2 * 3.14 * radius_; } private: double radius_; }; class Square : public Shape { public: double getArea() override { return side_ * side_; } double getPerimeter() override { return 4 * side_; } private: double side_; }; class ShapeFactory { public: static Shape* createShape(std::string type, double dimension) { if (type == "Circle") { return new Circle(dimension); } else if (type == "Square") { return new Square(dimension); } else { return nullptr; } } }; int main() { Shape* circle = ShapeFactory::createShape("Circle", 5); std::cout << "Circle area: " << circle->getArea() << std::endl; Shape* square = ShapeFactory::createShape("Square", 3); std::cout << "Square area: " << square->getArea() << std::endl; return 0; }
Kes Praktikal: Sistem Penjadualan Tugas
Apabila melaksanakan penjadual tugas dalam sistem terbenam yang dikekang sumber, anda boleh memanfaatkan corak reka bentuk. Sistem ini mengandungi tugasan, baris gilir tugas dan penjadual:
Dengan mengguna pakai corak reka bentuk ini, sistem penjadualan tugas yang cekap, teguh dan berskala boleh dicipta untuk menyediakan pelaksanaan tugas kritikal yang boleh dipercayai dalam sistem terbenam.
Atas ialah kandungan terperinci Apakah corak reka bentuk C++ untuk sistem terbenam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!