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
Lepaskan: 2024-04-19 17:06:01
asal
958 orang telah melayarinya

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_;
};
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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();
    }
};
Salin selepas log masuk

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!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan