Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah corak reka bentuk C++ untuk sistem terbenam?

Apakah corak reka bentuk C++ untuk sistem terbenam?

WBOY
WBOYasal
2024-06-02 22:24:59761semak imbas

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.

Apakah corak reka bentuk C++ untuk sistem terbenam?

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:

  • Mod tunggal: Digunakan untuk mengurus baris gilir tugas dan penjadual, memastikan satu entiti yang mengawal pelaksanaan tugas.
  • Corak Pemerhati: Tugas melanggan penjadual tunggal untuk menerima pemberitahuan perubahan jadual.
  • Corak Kaedah Kilang: Buat objek tugasan tertentu berdasarkan jenis tugas.

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!

Kenyataan:
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