Jumat, 12 April 2013

Design Pattern Factory Method dengan bahasa pemrograman CSharp

Setelah beberapa waktu mencari referensi di internet akhirnya nemu juga metode - metode yang di gunakan dalam postingan kali ini yaitu Design Pettern Factory Method.
Tanpa panjang lebar langsung saja penjelasan tentang Factory Method :


Ada banyak skenario saat kelas perlu menciptakan beberapa objek.
Kelas dapat melakukannya dengan bebas tetapi harus tahu tentang masing-masing dan setiap kelas.
Ide factory method adalah memiliki kemampuan kelas untuk menciptakan kelas-kelas lain tanpa mereka tahu tentang semua kemungkinan kelas yang ada.
Ini memberi kita diperpanjang, Dengan factory method kita mendapatkan kemungkinan untuk menciptakan, memelihara dan memanipulasi koleksi benda-benda yang berbeda yang memiliki beberapa karakteristik umum.
Penggunaan utama dari method ini adalah kelas yang mengelola banyak benda seperti Document Manager, manajer Control, Facility Manager.

berikut adalah contoh program dengan menggunakan bahasa pemrograman CSharp (C#) :


using System;

using System.Collections.Generic;

using System.Text;



namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            AEmployee man = new Manager();

            Console.WriteLine("Recievables for " + man.ToString() + ": \n");

            man.PrintBenefits();



            Console.ReadLine();



            man = new Engineer();

            Console.WriteLine("Recievables for " + man.ToString() + ": \n");

            man.PrintBenefits();



            Console.ReadLine();

        }

    }



    abstract class AItems

    {

        //This is just to facilitate testing of our application.

        public override string ToString()

        {

            return this.GetType().Name;

        }

    }



    class Car : AItems { }



    class CellPhone : AItems    { }



    class Computer : AItems    {    }



    class LapTop : AItems    {   }



    class MotorBike : AItems    {  }



    class EntertainmentAllowance : AItems  { }



    class TravelAllowance : AItems  { }



    class Salary : AItems   {  }



    class Incentives : AItems  {  }



   

    abstract class AEmployee

    {

        List benefits;



        public AEmployee()

        {

            benefits = new List();

        }



        public void AddBenefit(AItems ben)

        {

            benefits.Add(ben);

        }



        public void PrintBenefits()

        {

            foreach (AItems a in benefits)

            {

                Console.WriteLine(a.ToString());

            }

        }



        public override string ToString()

        {

            return this.GetType().Name;

        }

    }



   

    class Manager : AEmployee

    {

        public Manager()

        {

            AddBenefit(new Car());

            AddBenefit(new CellPhone());

            AddBenefit(new LapTop());

            AddBenefit(new EntertainmentAllowance());

            AddBenefit(new TravelAllowance());

            AddBenefit(new Salary());

            AddBenefit(new Incentives());

        }

    }



   

    class Engineer : AEmployee

    {

        public Engineer()

        {

            AddBenefit(new Computer());

            AddBenefit(new MotorBike());

            AddBenefit(new TravelAllowance());

            AddBenefit(new Salary());

        }

    }

}

0 komentar:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More