设计模式实现(三): Factory Method

    技术2025-03-18  59

    #include "stdafx.h" #include <iostream> // 产品 class CProduct { public: virtual ~CProduct() { } virtual void Print() { std::cout << "Product" << std::endl; } }; class CConcreteProduct : public CProduct { public: virtual void Print() { std::cout << "Concrete Product" << std::endl; } }; // 工厂 class CCreator { public: virtual CProduct* CreateProduct()= 0; public: void PrintFactory() { std::cout << "Factory" << std::endl; } }; class CConcreteCreator : public CCreator { public: virtual CProduct* CreateProduct() { return new CConcreteProduct(); } }; // 使用 void UseProduct(CCreator* pCreator) { CProduct* pProduct = pCreator->CreateProduct(); pProduct->Print(); delete pProduct; } int _tmain(int argc, _TCHAR* argv[]) { CCreator* pCreator = new CConcreteCreator(); UseProduct(pCreator); delete pCreator; return 0; }

    最新回复(0)