Monday, January 4, 2016

FACTORY METHOD




Factory Method Pattern (Pola Metode Factory) adalah pola desain berorienasi objek untuk menerapkan konsep pabrik.
Dengan membuat Facthory Method dan mendefinisikan sebuah class interface, kita bisa men-generate object yang dinamis sesuai kebutuhan dan implementasi yang diinginkan. Ruang lingkup Facthory Method adalah class, Facthory Method sendiri adalah object yang static.Metode Factory mendefinisikan sebuah antarmuka untuk menciptakan objek, tetapi memungkinkan subclass memutuskan mana kelas untuk instantiate.
Orang sering menggunakan Metode Factory sebagai cara standar untuk membuat objek, tetapi itu tidak diperlukan jika: kelas yang sedang dipakai tidak pernah berubah, atau Instansiasi terjadi dalam sebuah operasi yang subclass dapat dengan mudah mengganti (seperti operasi inisialisasi).

Penerapan / Implementasi
Pola pabrik dapat digunakan ketika:
– Penciptaan objek itu tidak mencakup penggunaan kembali tanpa duplikasi signifikan kode.
– Penciptaan objek membutuhkan akses ke informasi atau sumber daya yang tidak harus terkandung dalam kelas menulis.Manajemen seumur hidup dari objek yang dihasilkan harus terpusat untuk memastikan perilaku yang konsisten dalam aplikasi.


sciencecatcit.blogspot.co.id/

contoh :

using System;

namespace factory
{
    //Barang
    abstract class barang{}
     
    //Jenis barang sepatu
    class Sepatu : barang{}
     
    //Jenis barang tas
    class Tas : barang{}
     
    //Produksi
    abstract class penjual
    {
        public abstract barang MetodeFactory();
    }
    //penjual sepatu
    class penjual_Sepatu : penjual
    {
        public override barang MetodeFactory()
        {
            return new Sepatu();
        }
    }
     
    class penjual_Tas : penjual
    {
        public override barang MetodeFactory()
        {
            return new Tas();
        }
    }
         
    class Program
    {
        public static void Main(string[] args)
        {
            penjual[] penjuall = new penjual[2];
            penjuall[0] = new penjual_Sepatu();
            penjuall[1] = new penjual_Tas();
             
            foreach(penjual brg in penjuall)
            {
                barang barang1 = brg.MetodeFactory();
                Console.WriteLine("Barang {0} Wanita",barang1.GetType().Name);
                Console.WriteLine();
            }
             
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

No comments:

Post a Comment