abstractfacotry.cpp

来自「对设计模式中的factory, 代理等进行了实现。」· C++ 代码 · 共 58 行

CPP
58
字号
#include "AbstractFacotry.h"




CAbstractFactory* CAbstractFactory::GetFactory(int i)
{
	  if(i==1)
		  return new CConcreteFactory1();
	  else if(i==2)
		  return new CConcreteFactory2();
	  else 
		  return 0;
}



CProductA*  CAbstractFactory::CreateProductA()
{
	return 0;
}
  
CProductB*  CAbstractFactory::CreateProductB()
{
	return 0;
}


CProductA*  CConcreteFactory1::CreateProductA()
{
		return new CProductA1();
}

CProductB*  CConcreteFactory1::CreateProductB()
{
		return new CProductB1();
}
		 
CProductA*  CConcreteFactory2::CreateProductA()
{
		return new CProductA2();
}

CProductB*  CConcreteFactory2::CreateProductB()
{
		return new CProductB2();
}

//==================usage of Abstract Factory:================================

void useAbstractFactory()
{
	CAbstractFactory* pFactory=CAbstractFactory::GetFactory(2);

	CProductA *pA=pFactory->CreateProductA();
	CProductB *pB=pFactory->CreateProductB();
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?