싱글턴 모드: 함수 오버로딩을 통해 다양한 매개변수를 갖는 싱글턴 인스턴스를 제공합니다. 팩토리 패턴: 기능 재작성을 통해 다양한 유형의 객체를 생성하여 특정 제품 클래스에서 생성 프로세스를 분리합니다. C++에서 함수 오버로드 및 다시 작성 시 싱글톤 모드 및 팩토리 모드 적용 로드된 함수는 다른 매개변수 목록을 가지므로 다른 인스턴스를 반환합니다.
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_; };
실용 사례
두 개의 싱글톤 개체를 만듭니다. 하나는 매개 변수가 있고 다른 하나는 매개 변수가 없습니다.
int main() { Singleton* instance1 = Singleton::getInstance(); Singleton* instance2 = Singleton::getInstance(10); // 检查两个实例是否相同 if (instance1 == instance2) { std::cout << "两个实例相同" << std::endl; } else { std::cout << "两个实例不相同" << std::endl; } }
Function Overriding
Factory 패턴은 함수 재작성을 통해 구현할 수 있습니다. 다시 작성된 함수는 하위 클래스에서 서로 다른 구현을 가지므로 서로 다른 객체를 생성합니다.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(); } };
실용 사례
두 개의 팩토리 개체를 만들고, 각 개체는 서로 다른 제품 유형을 만듭니다.아아아아
위 내용은 C++ 함수 오버로딩 및 재작성에 싱글톤 모드와 팩토리 모드 적용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!