static void AbstractFactory() { var copFactory = new CopFactory(); var quarter = CreateHeroe(copFactory); var personal = (Cop)quarter.GetPersonal(); personal.PatrolStreet(new House(100, 25, 4)); quarter.AddResponsable(personal); quarter.AddTool(personal.Tool); quarter.AddVehicle(personal.Vehicle); var fireFactory = new FireFighterFactory(); quarter = CreateHeroe(fireFactory); var personal2 = (Firefighter)quarter.GetPersonal(); personal2.PutOutFire(new House(100, 25, 4), new Street(25, 4, 10)); quarter.AddResponsable(personal2); quarter.AddTool(personal2.Tool); quarter.AddVehicle(personal2.Vehicle); var electriciaFactory = new ElectricianFactory(); quarter = CreateHeroe(electriciaFactory); var personal3 = (Electrician)quarter.GetPersonal(); personal3.changeBurntLamps(new Street(25, 4, 10)); quarter.AddResponsable(personal3); quarter.AddTool(personal3.Tool); quarter.AddVehicle(personal3.Vehicle); }
public Firefighter CreateHeroe(CompliantHandler handler) { if (_fireFighterFactory == null) { _fireFighterFactory = new FireFighterFactory(); } var fireman = (Firefighter)_fireFighterFactory.CreateHeroe(handler); fireman.Tool = _fireFighterFactory.CreateTool(); fireman.Vehicle = _fireFighterFactory.CreateVehicle(); DisplayStrategy(); var success = Int32.TryParse(Console.ReadLine(), out int strategySelect); while (!success || strategySelect >= 3) { Console.Clear(); Console.WriteLine("Wrong option! :( Please try again."); DisplayStrategy(); success = Int32.TryParse(Console.ReadLine(), out strategySelect); } var strategy = (FireFighterStrategyEnum)strategySelect; switch (strategy) { case FireFighterStrategyEnum.Sequential: fireman.ChangeExtinguishStrategy(new SequentialStrategy()); break; case FireFighterStrategyEnum.StairCase: fireman.ChangeExtinguishStrategy(new StaircaseStrategy()); break; case FireFighterStrategyEnum.Spiral: fireman.ChangeExtinguishStrategy(new SpiralStrategy()); break; default: break; } return(fireman); }