Techbubbles

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

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

Related Posts:

  • Pingback: Anonymous

  • http://www.fun-sms.ro/forum/index.php?showtopic=11650 wextHith

    Brilliant!

  • http://yedda.com/people/5181189615966/ inhatabluflale

    omg.. good work, guy

  • PeterGloder

    Have a easy to understand!Good!

  • http://programming360.blogspot.com/2009/10/msdn-re-design.html Syed Tayyab Ali

    Hi Kalyan,

    In Factory Method Pattern, base class act like pointer.
    objFactories[0] = new concreteFactoryforProcuct1();
    objFactories[1] = new concreteFactoryforProcuct2();

    What do you think about it?

%d bloggers like this: