protected override void HandleCore(VahicleModel model) { IVahicleManager manager = new CarManager();// (manager)for the sake of example otherwire this pattern requires core funtionality implementation here as UFOHandler model.Engine = manager.GetEngine(); model.HorsePower = manager.GetHorsePower(); }
public void Handle(VahicleModel model) { if (CanHandle(model)) //can this impl. handle? { HandleCore(model); return; //we are done. } if (m_Successor != null) { m_Successor.Handle(model); //attempt with next in line... } else { throw new NotSupportedException("unknown vahicle"); //we can not handle! } }
public BaseVahicleFactory GetFactory(VahicleModel model) { BaseVahicleFactory factory = null; if (model.TypeCode == 1) { factory = new JetFactory(model); } else if (model.TypeCode == 2) { factory = new CarFactory(model); } return(factory); }
public static void FactoryMethod() { VahicleModel jet = new VahicleModel(1); VahicleModel car = new VahicleModel(2); VahicleFactoryManager factoryManager = new VahicleFactoryManager(); BaseVahicleFactory jetFactopry = factoryManager.GetFactory(jet); jetFactopry.DoCommonStuff(); BaseVahicleFactory carFactory = factoryManager.GetFactory(car); carFactory.DoCommonStuff(); Console.WriteLine($"This is {jet.Engine}, having {jet.HorsePower} Horse Power\nThis is {car.Engine}, having {car.HorsePower} Horse Power"); }
public static void SimpleFactory() { VahicleModel jet = new VahicleModel(1); VahicleModel car = new VahicleModel(2); //getting hold of factory var factory = new VahicleManagerFactory(); //creating and consuming product/service for jet IVahicleManager jetManager = factory.Create(jet.TypeCode); jet.Engine = jetManager.GetEngine(); jet.HorsePower = jetManager.GetHorsePower(); //creating and consuming product/service for car IVahicleManager carManager = factory.Create(car.TypeCode); car.Engine = carManager.GetEngine(); car.HorsePower = carManager.GetHorsePower(); Console.WriteLine("-----Via Simple Factory-----"); Console.WriteLine($"This is {jet.Engine}, having {jet.HorsePower} Horse Power\nThis is {car.Engine}, having {car.HorsePower} Horse Power"); }
protected override bool CanHandle(VahicleModel model) { return(model.TypeCode == 2); }
protected override void HandleCore(VahicleModel model) { model.Engine = "UFO Engine"; model.HorsePower = 3000; }
protected abstract void HandleCore(VahicleModel model);
protected abstract bool CanHandle(VahicleModel model);
public CarFactory(VahicleModel model) : base(model) { carManager = new CarManager(); }
public JetFactory(VahicleModel model) : base(model) { jetManager = new JetManager(); }
} //this will hit(return) child factories implimentation public BaseVahicleFactory(VahicleModel model) { _model = model; }