DesignPattern/12.FlyweightPattern/2.Code/main.cpp

35 lines
827 B
C++
Raw Normal View History

2019-10-27 07:58:03 +00:00
#include <iostream>
#include "FlyweightPattern.h"
int main()
{
NetDeviceFactory *factory = NetDeviceFactory::getFactory();
NetDevice *device1, *device2, *device3, *device4;
// <20>ͻ<EFBFBD><CDBB><EFBFBD>2<EFBFBD><32>ȡһ<C8A1><D2BB>hub
device1 = factory->getNetDevice('H');
device1->print(1);
// <20>ͻ<EFBFBD><CDBB><EFBFBD>2<EFBFBD><32>ȡһ<C8A1><D2BB>hub
device2 = factory->getNetDevice('H');
device2->print(2);
// <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>hub<75>Ƿ<EFBFBD><C7B7><EFBFBD>ͬһ<CDAC><D2BB>
printf("<EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>hub<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ͬһ<EFBFBD><EFBFBD>:\n");
printf("device1:%p\ndevice2:%p\n", device1, device2);
printf("\n\n\n\n");
// <20>ͻ<EFBFBD><CDBB><EFBFBD>3<EFBFBD><33>ȡһ<C8A1><D2BB>switch
device3 = factory->getNetDevice('S');
device3->print(1);
// <20>ͻ<EFBFBD><CDBB><EFBFBD>4<EFBFBD><34>ȡһ<C8A1><D2BB>hub
device4 = factory->getNetDevice('S');
device4->print(2);
// <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>hub<75>Ƿ<EFBFBD><C7B7><EFBFBD>ͬһ<CDAC><D2BB>
printf("<EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>switch<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ͬһ<EFBFBD><EFBFBD>:\n");
printf("device3:%p\ndevice4:%p\n", device3, device4);
printf("\n\n");
system("pause");
return 0;
}