1
Have a look into the below links. This is explained in detailed with real time example.
http://www.c-sharpcorner.com/article/factory-method-design-pattern-in-c-sharp/
http://www.dofactory.com/net/factory-method-design-pattern
http://www.dotnettricks.com/learn/designpatterns/factory-method-design-pattern-dotnet
0
enum FanType { TableFan, CeilingFan, ExhaustFan } interface IFan { void SwitchOn(); void SwitchOff(); } class TableFan : IFan {.... } class CeilingFan : IFan {.... } class ExhaustFan : IFan {..... } interface IFanFactory { IFan CreateFan(FanType type); } class FanFactory : IFanFactory { public IFan CreateFan(FanType type) { switch (type) { case FanType.TableFan: return new TableFan(); case FanType.CeilingFan: return new CeilingFan(); case FanType.ExhaustFan: return new ExhaustFan(); default: return new TableFan(); } } } static void Main(string[] args) { IFanFactory simpleFactory = new FanFactory(); IFan fan = simpleFactory.CreateFan(FanType.TableFan); fan.SwitchOn(); Console.ReadLine(); }