C++ 工厂模式简单实现:创建 Xiaomi 和 Huawei 产品
这段代码实现了一个简单的工厂模式。下面对每行代码进行解释:
- '#include
':包含了 iostream 库,用于输入输出流操作。 - 'using namespace std;':使用 std 命名空间,这样就可以直接使用 cout 和 endl 等标准库的函数。
- 'class Product':定义了一个抽象的产品类,包含一个纯虚函数 operation()。
- 'class Xiaomi : public Product':定义了一个具体的产品类 Xiaomi,继承自产品类 Product,并实现了 operation() 函数。
- 'class Huawei : public Product':定义了一个具体的产品类 Huawei,继承自产品类 Product,并实现了 operation() 函数。
- 'enum ProType{XIAOMI, HUAWEI};':定义了一个枚举类型 ProType,包含两个值 XIAOMI 和 HUAWEI。
- 'class Factory':定义了一个工厂类 Factory,包含一个 createProduct() 函数,根据传入的 ProType 类型参数创建相应的产品对象。
- 'Product *createProduct(ProType type)':工厂类 Factory 的成员函数,根据传入的 ProType 类型参数创建相应的产品对象,并返回产品对象的指针。 34-41. 'switch(type) ...':根据传入的 ProType 类型参数,判断应该创建哪个具体的产品对象,并返回该对象的指针。
- 'int main()':主函数入口。
- 'Factory fac;':创建一个工厂对象 fac。
- 'Product *pro = fac.createProduct(HUAWEI);':通过工厂对象 fac 创建一个产品对象 pro,通过传入 HUAWEI 作为参数,表示要创建一个 Huawei 产品对象。
- 'pro->operation();':调用产品对象 pro 的 operation() 函数,输出'opt huawei'。
- 'return 0;':程序正常结束。
原文地址: https://www.cveoy.top/t/topic/qx5P 著作权归作者所有。请勿转载和采集!