Design Pattern adalah suatu pola solusi umum yang digunakan pada masalah-masalah yang sering muncul pada desain software.
Salah satu pattern yang banyak digunakan dalam sebuah aplikasi adalah Singleton. Pattern ini digunakan ketika ada suatu resource yang hanya boleh ada satu instance eksklusif di dalamnya. Salah satu implementasinya sering digunakan pada kasus penggunaan resource database. Dalam aplikasi, cukup hanya ada 1 koneksi saja yang digunakan oleh berbagai object lainnya. Hal ini untuk mencegah pemborosan memory karena banyaknya instance yang sebenarnya tidak perlu.
Singleton adalah sebuah pattern yang membatasi penggunakan class
menjadi sebuah instance saja pada sebuah aplikasi. Biasanya ada sebuah class
pada aplikasi yang pada desain hanya dibutuhkan sekali. Pembatasan ini
sebenarnya bisa dibuat sebagai sebuah global static object. Tapi kadang
penggunaan singleton ini lebih menyenangkan karena global state sering
membingungkan apalagi ketika kita memasukkan sebuah komponen yang menggunakan
sebuah kelas yang dibatasi oleh sebuah obyek ke dalam aplikasi lain.
Tujuan Singleton adalah membuat suatu class dengan method membuat instance baru.
Tujuan Singleton adalah membuat suatu class dengan method membuat instance baru.
contoh :
package singleton;
public class Main
{
public static void main(String[]
args)
{
Scanner
input = new Scanner(System.in);
if(CurrentUser.isLoggedIn())
{
System.out.println("User
"
+
CurrentUser.user().getUsername()
+
"telah login");
}
else
{
System.out.println("Belum
ada user yang login");
System.out.println("Masukkan
username: ");
String
username = input.nextLine();
System.out.println("Masukkan
password: ");
String
password = input.nextLine();
CurrentUser.login(username,
password);
}
System.out.println("\nUser
yang telah login:");
System.out.println("Username:
" + CurrentUser.user().getUsername());
System.out.println("Password:
" + CurrentUser.user().getPassword());
System.out.println("\nUser
akan logout...");
CurrentUser.logout();
System.out.println("User
telah logout!");
if(CurrentUser.isLoggedIn())
{
System.out.println("Masih
ada user yang login");
}
else
{
System.out.println("Tidak
ada user yang login");
}
}
}
No comments:
Post a Comment