Автор admin Воскресенье, 21 июня 2009 11:32
ycle // Паттерн Строитель. #include #include #include #i nclude #include “Bicycle.h” #include “../purge.h” using namespace std; // Сборка велосипеда с использованием конкретного строителя. Bicycle* buildMeABikeC BicycleTechnicianS t. BicycleBuilder* builder) { t.setBuilder(builder); t.construct(); Bicycle* b = builder->getProduct(): cout « “Built a ” « builder->getBikeName() « endl; return b; } int mainO { // Заказ на велосипеды map order; order["mountain"] = 2; order["touring"] = 1; order["racing"] = 3; // Сборка велосипедов vector bikes; BicycleBuilder* m = new MountainBikeBuilder; BicycleBuilder* t = new TouringBikeBuilder: BicycleBuilder* r = new RacingBikeBuilder: BicycleTechnician tech; map::iterator it = order.beginO; while(it != order.endO) { BicycleBuilder* builder; if(it->first =¦= “mountain”) builder = m; else if(it->first == “touring”) builder = t; else if(it->first == “racing”) builder = r; for(size_t i = 0; i < it->second: ++i) bi kes.push_back(bui1dMeABi ke(tech. bui1der)); ++it: } delete m; delete t: delete r;
Последние комментарии