TechBubbles Microsoft Technology BLOG

Factory method Designpattern using C#

The factory method pattern is a creational design pattern used in software development to encapsulate the process of creating the objects.

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 method

            abstract 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();
            }
        }

——————————————————————————————–

About the author

Kalyan Bandarupalli

My name is kalyan, I am a software architect and builds the applications using Microsoft .NET technologies. Here I am trying to share what I feel and what I think with whoever comes along wandering to Internet home of mine.I hope that this page and its contents will speak for me and that is the reason I am not going to say anything specially about my self here.

5 Comments

TechBubbles Microsoft Technology BLOG

Follow me

Archives

Tag Cloud