Java Singleton (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang pola desain tunggal dan bagaimana menerapkannya di Java dengan bantuan contoh.

Singleton adalah pola desain daripada fitur khusus untuk Java. Ini memastikan bahwa hanya satu instance kelas yang dibuat.

Pola desain seperti pustaka kode kami yang mencakup berbagai teknik pengkodean yang dibagikan oleh programmer di seluruh dunia.

Java Singleton

Inilah cara kita menggunakan lajang di Java.

  • membuat privatekonstruktor yang membatasi untuk membuat objek di luar kelas
  • membuat privateatribut yang mengacu pada objek tunggal.
  • buat public staticmetode yang memungkinkan kita membuat dan mengakses objek yang kita buat. Di dalam metode ini, kita akan membuat kondisi yang membatasi kita untuk membuat lebih dari satu objek.

Berikut contohnya.

 class SingletonExample ( // private field that refers to the object private static SingletonExample singleObject; private SingletonExample() ( // constructor of the SingletonExample class ) public static SingletonExample getInstance() ( // write code that allows us to create only one object // access the object as per our need ) ) 

Dalam contoh di atas,

  • private static SingletonExample singleObject - referensi ke objek kelas.
  • private SingletonExample() - konstruktor pribadi yang membatasi pembuatan objek di luar kelas.
  • public static SingletonExample getInstance()- metode ini mengembalikan referensi ke satu-satunya objek kelas. Karena metode statis, itu dapat diakses menggunakan nama kelas.

Penggunaan Kelas Singleton

Singletons dapat digunakan saat bekerja dengan database. Mereka dapat digunakan untuk membuat kumpulan koneksi untuk mengakses database sambil menggunakan kembali koneksi yang sama untuk semua klien. Sebagai contoh,

 class Database ( private static Database dbObject; private Database() ( ) public static Database getInstance() ( // create object if it's not already created if(dbObject == null) ( dbObject = new Database(); ) // returns the singleton object return dbObject; ) public void getConnection() ( System.out.println("You are now connected to the database."); ) ) class Main ( public static void main(String() args) ( Database db1; // refers to the only object of Database db1= Database.getInstance(); db1.getConnection(); ) ) 

Saat kita menjalankan program, outputnya adalah:

 Anda sekarang terhubung ke database. 

Dalam contoh kami di atas,

  • Kami telah membuat Database kelas tunggal.
  • DbObject adalah bidang tipe kelas. Ini akan merujuk ke objek dari kelas Database.
  • Konstruktor pribadi Database()mencegah pembuatan objek di luar kelas.
  • Metode tipe kelas statis getInstance()mengembalikan instance kelas ke dunia luar.
  • Di kelas Utama, kami memiliki variabel tipe kelas db1. Kami memanggil getInstance()menggunakan db1 untuk mendapatkan satu-satunya objek dari Database.
  • Metode getConnection()ini hanya dapat diakses menggunakan objek Database.
  • Karena Database hanya dapat memiliki satu objek, semua klien dapat mengakses database melalui satu koneksi.

Penting untuk dicatat bahwa, hanya ada beberapa skenario (seperti logging) di mana lajang masuk akal. Bahkan koneksi database biasanya tidak boleh tunggal.

Kami menyarankan Anda untuk menghindari penggunaan lajang sepenuhnya jika Anda tidak yakin apakah akan menggunakannya atau tidak. Pelajari lebih lanjut: Apa yang buruk tentang Singleton?

Artikel yang menarik...