一般程序架构分为:
图形界面层——逻辑控制层——基础功能层
作用:
延迟子类实例化,一般用于逻辑控制层中。
类图如下:
示例代码:
#include <iostream>
class IProduct
{
//可以在此处添加一些产品的共有方法
};
class ProductA : public IProduct
{
public:
ProductA(){printf("this is a ProductA\n");}
};
class ProductB : public IProduct
{
public:
ProductB(){printf("this is a ProductB\n");}
};
class CProductFactory
{
public:
IProduct *CreateProduct(int iProductType)
{
switch (iProductType)
{
case 0:
return new ProductA();
case 1:
default:
return new ProductB();
}
}
};
void main()
{
CProductFactory pf;
IProduct *p1 = pf.CreateProduct(0);
IProduct *p2 = pf.CreateProduct(1);
IProduct *p3 = pf.CreateProduct(2);
delete p1;
p1 = NULL;
delete p2;
p2 = NULL;
delete p3;
p3 = NULL;
system("pause");
}由于是初学设计模式,错误在所难免,欢迎各位高手拍砖。
简单工厂模式的工厂类也可以直接将获取实例的方法以静态方法的形式写到基类中,总之模式是死的,人是活的,只要能实现我们的目的就OK了,不用太拘泥于形式。

本文深入探讨了简单工厂模式的基本概念及其在程序架构中的应用。通过示例代码展示了如何利用简单工厂模式延迟子类实例化,以及如何在逻辑控制层中灵活地创建不同类型的对象。文章旨在为初学者提供清晰的指导,并强调模式的灵活性和实现目的的重要性。
2万+

被折叠的 条评论
为什么被折叠?



