6 Tem 2015

Simple Factory Pattern

Author: strongsoul | Filed under: Teknik

Simple Factory Pattern
Aslında günlük kodlamamız içerisinde farketmeden de kullandığımız pattern tiplerinden biridir.
Bu Patterni kısaca özetlersek; Verilen verilere göre bir veya birden fazla class’ın uygun bir sonucunu döner.

Nasıl kullanılır dersek?
Bir base sınıf ile nesne üretiminde üreteceğimiz tip için soyutlama sağlarız.
(Factory design pattern type hiyerarşisine dayanır ve tüm classlar mutlaka bir base den türetilmelidir.)

Bir örnek ile pekiştirelim:
Bir base sınıf yapılandıralım

using System;
namespace SimpleFactoryPattern
{
     public class PersonInformation
     {
        String name="", lastName="";
        public PersonInformation ()
        {
        }
        public string Name
        {
            get {
                return this.name;
                }
            set {
                name = value;
                }
        }

        public string LastName
        {
            get {
                return this.lastName;
                }
            set {
                lastName = value;
                }
        }
    }
}

şimdi bundan iki tane sınıf türetelim
——–

using System;
namespace SimpleFactoryPattern
{
    public class RedGroupInformation : PersonInformation
    {
       public RedGroupInformation ()
       {
          Name=" Red ";
          LastName = " Group ";
       }
    }
}

——–

using System;
namespace SimpleFactoryPattern
{
     public class GreenGroupInformation : PersonInformation
     {
         public GreenGroupInformation ()
         {
           Name = " Green ";
           LastName = " Group ";
         }
     }
}

 

şimdi gelen veri bloğuna göre bu sınıflardan birer nesne elde edelim

using System;
namespace SimpleFactoryPattern
{
     class MainClass
     {
        public static void Main (string[] args)
        {
           Console.WriteLine ("----");
           string value="red";

           PersonInformation personInformation = null;
           if (value == "green")
              personInformation = new GreenGroupInformation ();
           else if (value == "red")
              personInformation = new RedGroupInformation ();

           Console.WriteLine (personInformation.Name + "-" + personInformation.LastName);
        }
    }
}

 

yukarıdaki main class’da görebileceğimiz gibi gelen değere göre belirlediğimiz bir class’ın bir nesnesini dönebiliyoruz.

Yorum Bırakın