Concerns: Which object needs to be created. Managing the life time of the object. Managing the build-up and tear down concerns of the object. Definition:"Define an interface for creating an object, but let subclasses decide which class to instantiate"C# Implementation of Factory methodabstract class Factory { public abstract Product GetProduct(); //Factory Method Declaration }class concreteFactoryforProcuct1 : Factory { public override Product GetProduct() //Factory Method Implementation { return new Product1(); } }class concreteFactoryforProcuct2 : Factory { public override Product GetProduct() //Factory Method Implementation { return new Product2(); } }interface Product { void GetDetails(); }class Product1 : Product { public void GetDetails() { Console.WriteLine("Product1 Details are Called"); } } class Product2 : Product { public void GetDetails() { Console.WriteLine("Product2 Details are called"); } }protected void Page_Load(object sender, EventArgs e) { Factory[] objFactories = new Factory[2]; objFactories[0] = new concreteFactoryforProcuct1(); objFactories[1] = new concreteFactoryforProcuct2(); foreach (Factory objFactory in objFactories) { Product objProduct = objFactory.GetProduct(); objProduct.GetDetails(); } }
Definition:"Define an interface for creating an object, but let subclasses decide which class to instantiate"C# Implementation of Factory methodabstract class Factory { public abstract Product GetProduct(); //Factory Method Declaration }class concreteFactoryforProcuct1 : Factory { public override Product GetProduct() //Factory Method Implementation { return new Product1(); } }class concreteFactoryforProcuct2 : Factory { public override Product GetProduct() //Factory Method Implementation { return new Product2(); } }interface Product { void GetDetails(); }class Product1 : Product { public void GetDetails() { Console.WriteLine("Product1 Details are Called"); } } class Product2 : Product { public void GetDetails() { Console.WriteLine("Product2 Details are called"); } }protected void Page_Load(object sender, EventArgs e) { Factory[] objFactories = new Factory[2]; objFactories[0] = new concreteFactoryforProcuct1(); objFactories[1] = new concreteFactoryforProcuct2(); foreach (Factory objFactory in objFactories) { Product objProduct = objFactory.GetProduct(); objProduct.GetDetails(); } }
You need to be a premium member to use this feature. To access it, you'll have to upgrade your membership.
Become a sharper developer and jumpstart your career.
$0
$
. 00
monthly
For Basic members:
$20
For Premium members:
$45
For Elite members: