Esempio n. 1
0
        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();
        }
Esempio n. 2
0
 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);
        }
Esempio n. 4
0
        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");
        }
Esempio n. 5
0
        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");
        }
Esempio n. 6
0
 protected override bool CanHandle(VahicleModel model)
 {
     return(model.TypeCode == 2);
 }
Esempio n. 7
0
 protected override void HandleCore(VahicleModel model)
 {
     model.Engine     = "UFO Engine";
     model.HorsePower = 3000;
 }
Esempio n. 8
0
 protected abstract void HandleCore(VahicleModel model);
Esempio n. 9
0
 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;
 }