Kamis, 25 Desember 2008

Singleton : Makhluk yang kesepian

huwaaah.. ntah mungkin gara - gara beneran kesepian atau gimana.. jadi pingin ngeposting masalah singleton..

singleton ini mantab banget loh.. dia ini salah satu pattern yang bisa dibilang sering digunakan.. Jadi singleton ini adalah sebuah objek (biasanya digambarkan dengan class) yang hanya ada satu di seluruh aplikasi.. biasanya kan kalo kita abis buat class terus kita new - new gitu.. nah kalo singleton nggak bisa dibuat.. dia cuma bisa digunakan.. bingung?? semakin menarik.. :P

gini2 contohnya kita ngebuat game.. nah kan karakter utama cuma ada 1 doang kan di seluruh game (tergantung gamenya sih.. -___-). Mau itu game udah pindah - pindah map, udah beli barang, udah bertarung, udah mati mungkin.. tapi karakternya masih sama - sama aja kan..

nah itu tadi penjelasan dan gunanya.. sekarang gimana sih cara ngebuatnya??

class Karakter
{
public int HP;
public int MP;
public int Attack;
public int Defence;

private static Karakter instance = new Karakter();
public static Karakter GetSingleton()
{
return instance;
}

private Karakter()
{
HP = 100;
MP = 50;
Attack = 97;
Defence = 68;
}
}


nah itu cara buatnya.. terus gimana sih cara makenya??
kalo mau ngakses karakter yang itu.. kita tinggal panggil aja singletonnya.. misalnya mau ngeliat hpnya maka..

C++ : cout << Karakter.GetSingleton().HP << endl;
C# : Console.WriteLine(Karakter.GetSingleton().HP);
Java : System.out.println(Karakter.GetSingleton().HP);


yah intinya mah itu.. dan yang perlu diingat perintah itu bisa dijalankan dimanapun anda menuliskannya.. kenapa?? karena dia GetSingleton adalah public static dia bisa diakses, diubah, dan diaapa - apain darimanapun.. menarik bukan??

nah cocok banget nih.. buat misalnya database, atau karakter sebuah game, atau biasanya form di C# juga bisa sih.. hehehe.. yah.. dicoba - coba aja yah..

Selamat mencoba.. ^_^

2 komentar:

Iseng mengatakan...

Adakalanya sigleton tepat digunakan, ada kalanya juga ndak. Kalo singleton semua tar malah scopenya global semua macam pake turbo c :D

Oya, anak if06 yang blognya teknis cuma dikit ya?

Aqsath mengatakan...

widih.. ada inas.. ampoonn kk..
hehe.. iya.. itu cuma digunain buat objek yang bener2 emang cuma mau dicreate sekali dan selanjutnya digunain doang.. hehe..

(Kalo cem2 ADT di-singleton mah bisa gaswat tuh)

ini juga baru jadi blog teknis kok.. hehehe.. baru kemaren tepatnya.. >.<