Rumah >pembangunan bahagian belakang >C++ >Aplikasi mod tunggal dan mod kilang dalam fungsi C++ membebankan dan menulis semula

Aplikasi mod tunggal dan mod kilang dalam fungsi C++ membebankan dan menulis semula

PHPz
PHPzasal
2024-04-19 17:06:01927semak imbas

Mod tunggal: Menyediakan contoh tunggal dengan parameter berbeza melalui lebihan fungsi. Corak kilang: Cipta pelbagai jenis objek melalui penulisan semula fungsi untuk memisahkan proses penciptaan daripada kelas produk tertentu. Aplikasi mod tunggal dan mod kilang dalam fungsi lebihan dan menulis semula dalam C++ Fungsi yang dimuatkan mempunyai senarai parameter yang berbeza dan oleh itu mengembalikan contoh yang berbeza.

class Singleton {
public:
    static Singleton* getInstance() {
        if (instance_ == nullptr) {
            instance_ = new Singleton();
        }
        return instance_;
    }

    static Singleton* getInstance(int arg) {
        if (instance_ == nullptr) {
            instance_ = new Singleton(arg);
        }
        return instance_;
    }

private:
    Singleton() = default;
    Singleton(int arg);
    static Singleton* instance_;
};

C++ 函数重载和重写中单例模式与工厂模式的运用Kes praktikal

Buat dua objek tunggal: satu dengan parameter dan satu tanpa parameter.

int main() {
    Singleton* instance1 = Singleton::getInstance();
    Singleton* instance2 = Singleton::getInstance(10);

    // 检查两个实例是否相同
    if (instance1 == instance2) {
        std::cout << "两个实例相同" << std::endl;
    } else {
        std::cout << "两个实例不相同" << std::endl;
    }
}

Corak Kilang

Fungsi Mengganti

Corak kilang boleh dilaksanakan melalui penulisan semula fungsi Fungsi yang ditulis semula mempunyai pelaksanaan yang berbeza dalam subkelas, dengan itu mencipta objek yang berbeza.

class Product {
public:
    virtual ~Product() {}
};

class ConcreteProductA : public Product {
    // ...
};

class ConcreteProductB : public Product {
    // ...
};

class Factory {
public:
    virtual ~Factory() {}
    virtual Product* createProduct() = 0;
};

class ConcreteFactoryA : public Factory {
public:
    Product* createProduct() override {
        return new ConcreteProductA();
    }
};

class ConcreteFactoryB : public Factory {
public:
    Product* createProduct() override {
        return new ConcreteProductB();
    }
};

Kes praktikal

Buat dua objek kilang, setiap objek mencipta jenis produk yang berbeza.

rreeee

Atas ialah kandungan terperinci Aplikasi mod tunggal dan mod kilang dalam fungsi C++ membebankan dan menulis semula. 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