CSC 123/252 C# Assignment Addendum (optional but highly recommended) * This assignment asks you to modify the "pizza factory" program on the homepage, which implements the Factory Method oop design pattern. Our Restaurant has expanded and now we're making sandwiches as well as pizzas. Your goal: integrate sandwiches (at least three types : BLT, Ham-and-cheese, Tuna fish, etc)... into the existing program WHILE CHANGING THE EXISTING PROGRAM AS LITTLE AS POSSIBLE. You'll need the following: interface food { double price(); int calories(); food make(); // abstract make method - dispatches to concrete make. } Both sandwich and pizza will now be interfaces that extend food. You'll need a more abstract "make" method that dispatches to makepizza for pizzas and another make method for sandwiches. You *might* also need the following: class bread : ingredient {} class tunafish : ingredient {} calss mayonnaise : ingredient {} //... other ingredients you want on a sandwich Maybe it'll be better to create: interface sandwichIngredient : ingredient {} ? You want to be able to execute the following Main, with the following characteristics public static void Main() { pizza[] myorder = { new cheesepizza(), new hawaiian(), new pepperonipizza() }; sandwich[] yourorder = { new blt(), new tunafish() }; for(sandwich sd in yourorder) sd.withmayo(true); // love mayo // attempt to change one of my orders to a sandwich: myorder[1] = new blt(); // this should be a compiler error (why?) sandwich mylunch = new hamandcheese(); mylunch.withmayo(true); // add mayonnaise to my sandwich food yourlunch = new blt(); yourlunch.withmayo(false); // compiler error (pizzas don't have mayo option) ((sandwich)yourlunch).withmayo(false); // should be ok food yourdinner = new pepperonipizza(); ((sandwich)yourdinner).withmayo(true); // runtime error (why?) double cost = 0; foreach (pizza p in myorder) cost += p.price(); foreach (sandwich s in yourorder) cost += p.price(); Console.WriteLine("Pay me "+cost+". Bon appetite."); } ///// CHALLENGE: change the OOP design structure so that // one cannot make a pizza with tuna fish as an ingredient.