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.
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