TechBubbles

Archive for the 'Designpatterns' Category

MVVM Pattern for WPF Applications

Introduction

Model-View-ViewModel [MVVM] is a design pattern for developing the UI Applications. It is a variation of MVC and MVP. MVP[Model-View-Presenter] which has been using for years to develop UI platforms.

Bit about MVP

View is what you see on the screen.Model displays the data and Presenter hooks the two elements together.You can read more about this pattern in August 2006 Design Patterns column.

Read more

Related Posts:

No comments

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:

5 comments