5Factory Method工厂方法模式文档格式.docx
《5Factory Method工厂方法模式文档格式.docx》由会员分享,可在线阅读,更多相关《5Factory Method工厂方法模式文档格式.docx(9页珍藏版)》请在冰点文库上搜索。
//IHuman.h
#pragmaonce
classIHuman
{
public:
IHuman(void)
{
}
virtual~IHuman(void)
virtualvoidLaugh()=0;
virtualvoidCry()=0;
virtualvoidTalk()=0;
};
//YellowHuman.h
#include"
ihuman.h"
classCYellowHuman:
publicIHuman
CYellowHuman(void);
~CYellowHuman(void);
voidLaugh();
voidCry();
voidTalk();
//YellowHuman.cpp
StdAfx.h"
YellowHuman.h"
#include<
iostream>
usingstd:
:
cout;
endl;
CYellowHuman:
CYellowHuman(void)
}
~CYellowHuman(void)
voidCYellowHuman:
Cry()
cout<
<
"
黄色人种会哭"
<
endl;
Laugh()
黄色人种会大笑,幸福呀!
"
Talk()
黄色人种会说话,一般说的都是双字节"
//WhiteHuman.h
classCWhiteHuman:
CWhiteHuman(void);
~CWhiteHuman(void);
//WhiteHuman.cpp
WhiteHuman.h"
CWhiteHuman:
CWhiteHuman(void)
~CWhiteHuman(void)
voidCWhiteHuman:
白色人种会哭"
白色人种会大笑,侵略的笑声"
白色人种会说话,一般都是单字节"
//BlackHuman.h
classCBlackHuman:
CBlackHuman(void);
~CBlackHuman(void);
//BlackHuman.cpp
BlackHuman.h"
CBlackHuman:
CBlackHuman(void)
~CBlackHuman(void)
voidCBlackHuman:
黑人会哭"
黑人会笑"
黑人可以说话,一般人听不懂"
//IHumanFactory.h
IHuman.h"
classIHumanFactory
IHumanFactory(void)
virtual~IHumanFactory(void)
virtualIHuman*CreateHuman()=0;
ihumanfactory.h"
classCYellowHumanFactory:
publicIHumanFactory
CYellowHumanFactory(void);
~CYellowHumanFactory(void);
virtualIHuman*CreateHuman(void);
//YellowHumanFactory.cpp
YellowHumanFactory.h"
CYellowHumanFactory:
CYellowHumanFactory(void)
~CYellowHumanFactory(void)
IHuman*CYellowHumanFactory:
CreateHuman(void)
returnnewCYellowHuman();
classCWhiteHumanFactory:
CWhiteHumanFactory(void);
~CWhiteHumanFactory(void);
//WhiteHumanFactory.cpp
WhiteHumanFactory.h"
CWhiteHumanFactory:
CWhiteHumanFactory(void)
~CWhiteHumanFactory(void)
IHuman*CWhiteHumanFactory:
returnnewCWhiteHuman();
classCBlackHumanFactory:
CBlackHumanFactory(void);
~CBlackHumanFactory(void);
virtualIHuman*CreateHuman();
//BlackHumanFactory.cpp
BlackHumanFactory.h"
CBlackHumanFactory:
CBlackHumanFactory(void)
~CBlackHumanFactory(void)
IHuman*CBlackHumanFactory:
CreateHuman()
returnnewCBlackHuman();
//FactoryMethod.cpp
//FactoryMethod.cpp:
定义控制台应用程序的入口点。
//
stdafx.h"
SimpleHumanFactory.h"
StandardHumanFactory.h"
IHumanFactory.h"
string;
voidDoFactoryMethod1()
----------第一批人是这样的:
黄种人工厂来生产黄种人"
IHumanFactory*pHumanFactory=newCYellowHumanFactory();
IHuman*pHuman=pHumanFactory->
CreateHuman();
pHuman->
Cry();
Laugh();
Talk();
deletepHuman;
deletepHumanFactory;
voidDoFactoryMethod2()
----------第二批人是这样的:
白种人工厂来生产白种人"
IHumanFactory*pHumanFactory=newCWhiteHumanFactory();
voidDoFactoryMethod3()
黑种人工厂来生产黑种人"
IHumanFactory*pHumanFactory=newCBlackHumanFactory();
int_tmain(intargc,_TCHAR*argv[])
//工厂方法
----------工厂方法:
DoFactoryMethod1();
DoFactoryMethod2();
DoFactoryMethod3();
_CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF|_CRTDBG_ALLOC_MEM_DF);
_CrtDumpMemoryLeaks();
return0;
工厂方法属于创建型模式,适合于产品不太多的情况。
产品如果很多,则需要用抽象工厂来实现。