Pizza *orderPizza(std::string type) { Pizza *pizza = m_factory->createPizza(type); pizza->prepare(); pizza->bake(); pizza->cut(); pizza->box(); return pizza; }
Pizza* PizzaStore::orderPizza(string type) { Pizza* pizza = createPizza(type); pizza->prepare(); pizza->bake(); pizza->cut(); pizza->box(); return pizza; }
int main(int argc, char *argv[]) { auto *factory = new SimplePizzaFactory(); auto *store = new PizzaStore(factory); Pizza *pizza = store->orderPizza("cheese"); std::cout << "We ordered a " << pizza->getName() << "\n"; std::cout << pizza->toString() << "\n"; pizza = store->orderPizza("veggie"); std::cout << "We ordered a " << pizza->getName() << "\n"; std::cout << pizza->toString() << "\n"; return 0; }
int main() { Cook cook; PizzaBuilder* VegPizzaBuilder = new Builder::VegPizzaBuilder(); PizzaBuilder* NonVegPizzaBuilder = new Builder::NonVegPizzaBuilder(); cook.setPizzaBuilder(VegPizzaBuilder); cook.constructPizza(); Pizza* veg = cook.getPizza(); veg->open(); cook.setPizzaBuilder(NonVegPizzaBuilder); cook.constructPizza(); delete VegPizzaBuilder; delete NonVegPizzaBuilder; delete veg; getch(); return 0; }
int main() { PizzaStore *nyStore = new NYPizzaStore(); PizzaStore *chicagoStore = new ChicagoPizzaStore(); Pizza *pizza = nyStore->orderPizza("cheese"); std::cout << "Ethan ordered a " << pizza->getName() << std::endl; delete pizza; pizza = chicagoStore->orderPizza("cheese"); std::cout << "Joel ordered a " << pizza->getName() << std::endl; delete pizza; pizza = nyStore->orderPizza("clam"); std::cout << "Ethan ordered a " << pizza->getName() << std::endl; delete pizza; pizza = chicagoStore->orderPizza("clam"); std::cout << "Joel ordered a " << pizza->getName() << std::endl; delete pizza; pizza = nyStore->orderPizza("pepperoni"); std::cout << "Ethan ordered a " << pizza->getName() << std::endl; delete pizza; pizza = chicagoStore->orderPizza("pepperoni"); std::cout << "Joel ordered a " << pizza->getName() << std::endl; delete pizza; pizza = nyStore->orderPizza("veggie"); std::cout << "Ethan ordered a " << pizza->getName() << std::endl; delete pizza; pizza = chicagoStore->orderPizza("veggie"); std::cout << "Joel ordered a " << pizza->getName() << std::endl; delete pizza; delete nyStore; delete chicagoStore; return 0; }
int main() { Cook cook; PizzaBuilder* hawaiianPizzaBuilder = new HawaiianPizzaBuilder; PizzaBuilder* spicyPizzaBuilder = new SpicyPizzaBuilder; cook.setPizzaBuilder(hawaiianPizzaBuilder); cook.constructPizza(); Pizza* hawaiian = cook.getPizza(); hawaiian->open(); cook.setPizzaBuilder(spicyPizzaBuilder); cook.constructPizza(); Pizza* spicy = cook.getPizza(); spicy->open(); delete hawaiianPizzaBuilder; delete spicyPizzaBuilder; delete hawaiian; delete spicy; }
Pizza *Pizza_Store::order_pizza(std::string type) { Pizza *pizza = create_pizza(type); cout << "--- Making a " << pizza->get_name() << " ---" << endl; pizza->prepare(); pizza->bake(); pizza->cut(); pizza->box(); return pizza; }
int Pizza_Test_Drive::main(int argc, char *argv[]) { Pizza_Store *ny_store = new NY_Pizza_Store(); Pizza_Store *chicago_store = new Chicago_Pizza_Store(); Pizza *pizza = ny_store->order_pizza("cheese"); cout << "Ethan ordered a " << pizza->get_name() << endl; delete pizza; pizza = chicago_store->order_pizza("cheese"); cout << "Joel ordered a " << pizza->get_name() << endl; delete pizza; pizza = ny_store->order_pizza("clam"); cout << "Ethan ordered a " << pizza->get_name() << endl; delete pizza; pizza = chicago_store->order_pizza("clam"); cout << "Joel ordered a " << pizza->get_name() << endl; delete pizza; pizza = ny_store->order_pizza("pepperoni"); cout << "Ethan ordered a " << pizza->get_name() << endl; delete pizza; pizza = chicago_store->order_pizza("pepperoni"); cout << "Joel ordered a " << pizza->get_name() << endl; delete pizza; pizza = ny_store->order_pizza("veggie"); cout << "Ethan ordered a " << pizza->get_name() << endl; delete pizza; pizza = chicago_store->order_pizza("veggie"); cout << "Joel ordered a " << pizza->get_name() << endl; delete pizza; return 0; }
bool Stock::checkIngredients(const Pizza &p) { const bool *tmp; int i; i = -1; tmp = p.getIng(); while (++i < ING_NBR) { if (tmp[i] && _ingredients[i] < 1) return (false); } i = -1; pthread_mutex_lock(&_sMutex); while (++i < ING_NBR) { if (tmp[i]) _ingredients[i] -= 1; } pthread_mutex_unlock(&_sMutex); return (true); }
/* * Create all available pizzas and print their prices */ void pizza_information( PizzaFactory::PizzaType pizzatype ) { Pizza* pizza = PizzaFactory::createPizza(pizzatype); std::cout << "Price of " << pizzatype << " is " << pizza->getPrice() << std::endl; delete pizza; }
void menuglowne(int wybor) { while(wybor != 0 ) { cout<<"\n1. Zakup gotowej pizzy!\n" <<"2. Stworz wlasna pizze!\n\n" <<"0. EXIT!\n" <<"\nWybierz odpowiednia opcje: "; while(!(cin>>wybor)) { cout<<"Musisz podac liczbe! "; cin.clear(); cin.sync(); }; switch(wybor) { case 0: cout<<"Dzieki za wizyte! Zapraszamy ponownie!"; break; case 1: { int wybor_pi=1; while(wybor_pi != 0 ) { cout<<"\tOto pizze w naszym asortymencie:\n" <<"\t1. Margherita\n\t2. Funghi\n" <<"\t3. Neapolitana\n\t4. Dipollo\n" <<"\t5. Pepperoni\n\t6. Hawajska\n" <<"\t7. Amore\n\t8. Diabelska\n" <<"\t9. Rafaello\n\n\t0. EXIT \n" <<"\nWybierz odpowiednia opcje: "; while(!(cin>>wybor_pi)) { cout<<"Musisz podac liczbe! "; cin.clear(); cin.sync(); } switch(wybor_pi) { case 0: cout<<"Powrot do menu glownego!"<<endl; break; case 1: { Pizza margherita; margherita.nazwa="Margherita"; Ciasto ciasherita; ciasherita.nadaj_ksztalt(); Wege wegeherita; wegeherita.ilosc=2; wegeherita.skladniki=new string[wegeherita.ilosc]; wegeherita.skladniki[0]=wegeherita.tekstenum(2); wegeherita.skladniki[1]=wegeherita.tekstenum(5); Mieso miesoherita; miesoherita.ilosc=1; miesoherita.skladniki=new string[miesoherita.ilosc]; miesoherita.skladniki[0]=miesoherita.tekstenum(0); margherita(wegeherita, miesoherita); Dodatki dodaherita; dodaherita.dorzuc_do_zamowienia(); Rachunek racherita; margherita.cena_pizzy=racherita.wystaw_rachunek(ciasherita, margherita, dodaherita); cout<<margherita; zaplac(margherita.cena_pizzy); break; } case 2: { Pizza funghi; funghi.nazwa="Funghi"; Ciasto ciasherita; ciasherita.nadaj_ksztalt(); Wege wegeherita; wegeherita.ilosc=2; wegeherita.skladniki=new string[wegeherita.ilosc]; wegeherita.skladniki[0]=wegeherita.tekstenum(3); wegeherita.skladniki[1]=wegeherita.tekstenum(7); Mieso miesoherita; miesoherita.ilosc=1; miesoherita.skladniki=new string[miesoherita.ilosc]; miesoherita.skladniki[0]=miesoherita.tekstenum(5); funghi(wegeherita, miesoherita); Dodatki dodaherita; dodaherita.dorzuc_do_zamowienia(); Rachunek racherita; funghi.cena_pizzy=racherita.wystaw_rachunek(ciasherita, funghi, dodaherita); cout<<funghi; zaplac(funghi.cena_pizzy); break; } case 3: { Pizza neapolitana; neapolitana.nazwa="Neapolitana"; Ciasto ciasherita; ciasherita.nadaj_ksztalt(); Wege wegeherita; wegeherita.ilosc=2; wegeherita.skladniki=new string[wegeherita.ilosc]; wegeherita.skladniki[0]=wegeherita.tekstenum(3); wegeherita.skladniki[1]=wegeherita.tekstenum(7); Mieso miesoherita; miesoherita.ilosc=1; miesoherita.skladniki=new string[miesoherita.ilosc]; miesoherita.skladniki[0]=miesoherita.tekstenum(5); neapolitana(wegeherita, miesoherita); Dodatki dodaherita; dodaherita.dorzuc_do_zamowienia(); Rachunek racherita; neapolitana.cena_pizzy=racherita.wystaw_rachunek(ciasherita, neapolitana, dodaherita); cout<<neapolitana; zaplac(neapolitana.cena_pizzy); break; } case 4: { Pizza dipollo; dipollo.nazwa="Dipollo"; Ciasto ciasherita; ciasherita.nadaj_ksztalt(); Wege wegeherita; wegeherita.ilosc=2; wegeherita.skladniki=new string[wegeherita.ilosc]; wegeherita.skladniki[0]=wegeherita.tekstenum(3); wegeherita.skladniki[1]=wegeherita.tekstenum(7); Mieso miesoherita; miesoherita.ilosc=1; miesoherita.skladniki=new string[miesoherita.ilosc]; miesoherita.skladniki[0]=miesoherita.tekstenum(5); dipollo(wegeherita, miesoherita); Dodatki dodaherita; dodaherita.dorzuc_do_zamowienia(); Rachunek racherita; dipollo.cena_pizzy=racherita.wystaw_rachunek(ciasherita, dipollo, dodaherita); cout<<dipollo; zaplac(dipollo.cena_pizzy); break; } case 5: { Pizza pepperoni; pepperoni.nazwa="Pepperoni"; Ciasto ciasherita; ciasherita.nadaj_ksztalt(); Wege wegeherita; wegeherita.ilosc=2; wegeherita.skladniki=new string[wegeherita.ilosc]; wegeherita.skladniki[0]=wegeherita.tekstenum(3); wegeherita.skladniki[1]=wegeherita.tekstenum(7); Mieso miesoherita; miesoherita.ilosc=1; miesoherita.skladniki=new string[miesoherita.ilosc]; miesoherita.skladniki[0]=miesoherita.tekstenum(5); pepperoni(wegeherita, miesoherita); Dodatki dodaherita; dodaherita.dorzuc_do_zamowienia(); Rachunek racherita; pepperoni.cena_pizzy=racherita.wystaw_rachunek(ciasherita, pepperoni, dodaherita); cout<<pepperoni; zaplac(pepperoni.cena_pizzy); } break; case 6: { Pizza hawajska; hawajska.nazwa="Hawajska"; Ciasto ciasherita; ciasherita.nadaj_ksztalt(); Wege wegeherita; wegeherita.ilosc=2; wegeherita.skladniki=new string[wegeherita.ilosc]; wegeherita.skladniki[0]=wegeherita.tekstenum(1); wegeherita.skladniki[1]=wegeherita.tekstenum(2); Mieso miesoherita; miesoherita.ilosc=1; miesoherita.skladniki=new string[miesoherita.ilosc]; miesoherita.skladniki[0]=miesoherita.tekstenum(5); hawajska(wegeherita, miesoherita); Dodatki dodaherita; dodaherita.dorzuc_do_zamowienia(); Rachunek racherita; hawajska.cena_pizzy=racherita.wystaw_rachunek(ciasherita, hawajska, dodaherita); cout<<hawajska; zaplac(hawajska.cena_pizzy); } break; case 7: { Pizza amore; amore.nazwa="Amore"; Ciasto ciasherita; ciasherita.nadaj_ksztalt(); Wege wegeherita; wegeherita.ilosc=4; wegeherita.skladniki=new string[wegeherita.ilosc]; wegeherita.skladniki[0]=wegeherita.tekstenum(3); wegeherita.skladniki[1]=wegeherita.tekstenum(7); wegeherita.skladniki[2]=wegeherita.tekstenum(4); wegeherita.skladniki[3]=wegeherita.tekstenum(6); Mieso miesoherita; miesoherita.ilosc=2; miesoherita.skladniki=new string[miesoherita.ilosc]; miesoherita.skladniki[0]=miesoherita.tekstenum(5); miesoherita.skladniki[0]=miesoherita.tekstenum(2); amore(wegeherita, miesoherita); Dodatki dodaherita; dodaherita.dorzuc_do_zamowienia(); Rachunek racherita; amore.cena_pizzy=racherita.wystaw_rachunek(ciasherita, amore, dodaherita); cout<<amore; zaplac(amore.cena_pizzy); } break; case 8: { Pizza diabelska; diabelska.nazwa="Diabelska"; Ciasto ciasherita; ciasherita.nadaj_ksztalt(); Wege wegeherita; wegeherita.ilosc=2; wegeherita.skladniki=new string[wegeherita.ilosc]; wegeherita.skladniki[0]=wegeherita.tekstenum(1); wegeherita.skladniki[1]=wegeherita.tekstenum(6); Mieso miesoherita; miesoherita.ilosc=2; miesoherita.skladniki=new string[miesoherita.ilosc]; miesoherita.skladniki[0]=miesoherita.tekstenum(1); miesoherita.skladniki[1]=miesoherita.tekstenum(4); diabelska(wegeherita, miesoherita); Dodatki dodaherita; dodaherita.dorzuc_do_zamowienia(); Rachunek racherita; diabelska.cena_pizzy=racherita.wystaw_rachunek(ciasherita, diabelska, dodaherita); cout<<diabelska; zaplac(diabelska.cena_pizzy); } break; case 9: { Pizza rafaello; rafaello.nazwa="Rafaello"; Ciasto ciasherita; ciasherita.nadaj_ksztalt(); Wege wegeherita; wegeherita.ilosc=2; wegeherita.skladniki=new string[wegeherita.ilosc]; wegeherita.skladniki[0]=wegeherita.tekstenum(3); wegeherita.skladniki[1]=wegeherita.tekstenum(2); Mieso miesoherita; miesoherita.ilosc=3; miesoherita.skladniki=new string[miesoherita.ilosc]; miesoherita.skladniki[0]=miesoherita.tekstenum(5); miesoherita.skladniki[1]=miesoherita.tekstenum(1); miesoherita.skladniki[2]=miesoherita.tekstenum(3); rafaello(wegeherita, miesoherita); Dodatki dodaherita; dodaherita.dorzuc_do_zamowienia(); Rachunek racherita; rafaello.cena_pizzy=racherita.wystaw_rachunek(ciasherita, rafaello, dodaherita); cout<<rafaello; zaplac(rafaello.cena_pizzy); } break; default: cout<<"Brak takiej opcji! Sproboj raz jeszcze!\n"; break; }; } } break; break; case 2: { cout<<"Wybrales stworzenie nowej pizzy!\n"; Pizza stwor; cout<<"Podaj nazwe tworzonej przez siebie Pizzy: "; cin>>stwor.nazwa; stwor.tworzenie(); } break; default: cout<<"Brak takiej opcji! Sproboj raz jeszcze!\n"; break; } }; }
int main() { PizzaStore *store = new NyStylePizzaStore; Pizza* pizza = store->OrderPizza(PizzaStore::VEGGIE); std::cout<<pizza->GetPizzaName()<<"\n"; }