设计模式之Static Factory模式(简单工厂模式)

原创 2016年06月02日 10:42:35

简单工厂模式并不是GOF提出的23种设计模式中的一种。工厂模式有一种非常形象的描述,建立对象的类就如一个工厂,而需要被建立的对象就是一个个产品。

适用场合
1.在程序中,需要创建的对象很多,导致对象的new操作多且杂时,需要使用简单工厂模式;
2.由于对象的创建过程是我们不需要去关心的,而我们注重的是对象的实际操作,所以,我们需要分离对象的创建和操作两部分,如此,方便后期的程序扩展和维护。

1.定义抽象类,也就是接口

class Product
{
public:
	virtual void show()=0;
};
2.定义需要具体实现类,继承抽象类,假设有三个产品

class ProductA:public Product
{
public:
	virtual void show()
	{
		printf("ProductA\n");
	}
};

class ProductB:public Product
{
public:
	virtual void show()
	{
		printf("ProductB\n");
	}
};

class ProductC:public Product
{
public:
	virtual void show()
	{
		printf("ProductC\n");
	}
};
3.定义工厂类,负责生产产品,这里传入具体的参数来决定生产那个产品

class Factory
{
public:
	Product* CreateProduct(int num)
	{
		switch(num)   //通过传参实例化对象
		{
		case 1:
			return new ProductA();
			break;
		case 2:
			return new ProductB();
			break;
		case 3:
			return new ProductC();
			break;
		default:
			return NULL;
			break;
		}
	}
};
4.实际调用

int main()
{
	Factory* ProductFactory=new Factory();       //首先定有一个工厂对象
	Product* A=ProductFactory->CreateProduct(1); //利用多态与工厂对象来传参决定生产那个产品
	A->show();
	Product* B=ProductFactory->CreateProduct(2);
	B->show();
	Product* C=ProductFactory->CreateProduct(3);
	C->show();
}





版权声明:本文为博主原创文章,未经博主允许不得转载。

设计模式系列(四)简单工厂模式(Simple Factory Pattern/Static Factory Method)

设计模式系列(四)简单工厂模式 (Simple Factory Pattern/Static Factory Method)     简单工厂模式又被成为静态工厂方法,所以其外文名一般是Stati...

设计模式 - 简单工厂模式/静态工厂模式(Static Factory Method) C++实现

简单工厂模式 简单工厂模式又叫静态工厂方法,不属于23种GOF模式之一。 适用场景:在程序的各个地方都需要new一些常用的对象,并且对new的对象要进行一些初始化,new操作散落在程序的各个地方,不便...

设计模式 I ——简单工厂模式(Factory)

设计模式 I ——简单工厂模式(Factory)问题概述在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成...

[设计模式整理笔记 二] 简单工厂模式(Simple Factory)

平时在园子里看到有人质疑, 简单工厂模式到底是怎样设计的呢? 下面就来介绍一下它的含义。 简单的工厂模式,是属于创建型的模式, 创建型模式简单的理解就会创建对象并返回相应的实例。所以它关注的是谁...

大话设计模式感悟(2)——简单工厂模式(Simple Factory)

一、定义。         简单工厂模式是类的创建,又叫静态工厂方法(Static Factory Methord)模式。简单工厂模式是由一个工厂对象决定创造哪一种产品类的实例。UML图如下:  ...
  • gwblue
  • gwblue
  • 2012年05月10日 15:59
  • 839

大话设计模式一:简单工厂模式(simple factory)

定义Operation抽象类,将各种操作解耦为各个类并实现Operation抽象类,这样可以降低了各种具体操作代码耦合性。总体来说,定义一个抽象类,然后若干类继承抽象类,实现抽象方法,工厂会根据需要生...
  • zdp072
  • zdp072
  • 2013年09月03日 21:09
  • 1107

【设计模式】学习笔记4:简单工厂模式(Simple Factory)

之前已经学过“针对接口编程,而不是针对实现编程”,但是,当使用“new”时,却的确是在实例化一个具体类,所以用的是具体实现,而不是接口。 Duck duck = new MallardDuck( );...

设计模式(1):简单工厂模式(Simple Factory Pattern)

1. 从一个简单的例子开始在众多的设计原则中,有一条原则是这么说的:要针对接口编程,不要针对实现编程。 针对接口编程的话,可以使用不同的实现类来创建这个对象。比如需要一个List:List list...

Java设计模式之简单工厂模式(Simple Factory)

【Java与模式】简单工厂模式(Simple Factory) 首先说明,Java与模式一系列的文章均是参考阎宏博士的《Java与模式》一书,加上自身的一些体会的探索,产生如下文章。在此,特意标明。 ...
  • Wsky51
  • Wsky51
  • 2017年06月09日 23:00
  • 262

JAVA设计模式之 简单工厂模式【Simple Factory Pattern】

一、概述 er、适用场景
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式之Static Factory模式(简单工厂模式)
举报原因:
原因补充:

(最多只允许输入30个字)