11Bridge桥梁模式Word文档下载推荐.docx
《11Bridge桥梁模式Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《11Bridge桥梁模式Word文档下载推荐.docx(7页珍藏版)》请在冰豆网上搜索。
CNewCorp起到了桥梁的作用。
可以分别增加产品和公司。
看代码:
//NewCorp.h
#pragmaonce
#include"
IProduct.h"
classCNewCorp
{
public:
CNewCorp(IProduct*pproduct);
virtual~CNewCorp(void);
voidMakeMoney();
private:
IProduct*m_pProduct;
};
//NewCorp.cpp
StdAfx.h"
NewCorp.h"
CNewCorp:
:
CNewCorp(IProduct*pproduct)
this->
m_pProduct=pproduct;
}
~CNewCorp(void)
voidCNewCorp:
MakeMoney()
//每个公司都是一样,先生产
m_pProduct->
BeProducted();
//然后销售
BeSelled();
//NewHouseCorp.h
newcorp.h"
House.h"
classCNewHouseCorp:
publicCNewCorp
CNewHouseCorp(CHouse*pHouse);
~CNewHouseCorp(void);
//NewHouseCorp.cpp
NewHouseCorp.h"
#include<
iostream>
usingstd:
cout;
endl;
CNewHouseCorp:
CNewHouseCorp(CHouse*pHouse):
CNewCorp(pHouse)
~CNewHouseCorp(void)
voidCNewHouseCorp:
MakeMoney();
cout<
<
"
房地产公司赚大钱了..."
<
endl;
//ShanZhaiCorp.h
classCShanZhaiCorp:
CShanZhaiCorp(IProduct*pproduct);
~CShanZhaiCorp(void);
//ShanZhaiCorp.cpp
ShanZhaiCorp.h"
CShanZhaiCorp:
CShanZhaiCorp(IProduct*pproduct):
CNewCorp(pproduct)
~CShanZhaiCorp(void)
voidCShanZhaiCorp:
我赚钱呀..."
//IProduct.h
classIProduct
IProduct(void)
{
}
virtual~IProduct(void)
virtualvoidBeProducted()=0;
virtualvoidBeSelled()=0;
//House.h
iproduct.h"
classCHouse:
publicIProduct
CHouse(void);
~CHouse(void);
voidBeProducted();
voidBeSelled();
//House.cpp
CHouse:
CHouse(void)
~CHouse(void)
voidCHouse:
BeProducted()
生产出的房子是这个样子的..."
BeSelled()
生产出的房子卖出去了..."
//Clothes.h
classCClothes:
CClothes(void);
~CClothes(void);
//Clothes.cpp
Clothes.h"
CClothes:
CClothes(void)
~CClothes(void)
voidCClothes:
生产出的衣服是这个样子的..."
生产出的衣服卖出去了..."
//IPod.h
classCIPod:
CIPod(void);
~CIPod(void);
//IPod.cpp
IPod.h"
CIPod:
CIPod(void)
~CIPod(void)
voidCIPod:
生产出的ipod是这个样子的..."
生产出的ipod卖出去了..."
//
//Bridge.cpp:
定义控制台应用程序的入口点。
stdafx.h"
ClothesCorp.h"
voidDoNewRun1()
----------房地产公司是这样运行的----------"
CHousehouse;
CNewHouseCorpnewHouseCorp(&
house);
newHouseCorp.MakeMoney();
----------山寨公司是这样运行的----------"
CClothesclothes;
CShanZhaiCorpshanZhaiCorp(&
clothes);
shanZhaiCorp.MakeMoney();
voidDoNewRun2()
CIPodipod;
ipod);
int_tmain(intargc,_TCHAR*argv[])
//只有两家公司,一家是房地产公司,另一家公司是衣服赚钱就生产衣服
DoNewRun1();
//只有两家公司,一家是房地产公司,另一家公司是ipod赚钱就生产ipod
DoNewRun2();
_CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF|_CRTDBG_ALLOC_MEM_DF);
_CrtDumpMemoryLeaks