İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

Java Singleton Sınıflar

Emnn26.06.20230 cevap987 görüntüleme
2021'den beri2.233 mesaj
#1
Merhaba bugün Java programlama dilinde Singleton sınıflardan söz edeceğim.

Öncelikle Singleton sınıf ne demek CHATCPT'den dinleyelim: Java'da "singleton" bir tasarım desenidir ve bir sınıfın yalnızca bir örneğini oluşturmasını sağlar. Singleton tasarım deseni, belirli bir sınıfın yalnızca bir örneğinin olmasını ve bu örneğe küresel bir erişimin olmasını sağlar.
Singleton sınıflarının örneği, uygulama çalıştığı sürece yalnızca bir kez oluşturulur ve daha sonra bu örneğe her yerden erişilebilir. Genellikle tek bir kaynak veya nesnenin paylaşılmasını gerektiren durumlarda kullanılır.

Normal Bir Sınıf ve Sınıf ile Oluşturulan Nesnelerin Bellek Yolları:
Javada Singleton olmayan bir sınıftan nesne oluşturulduğunda, o nesne bellekte işlemler, değişkenler vb. şeyler için bir yer tahsis eder. Bu bellek alanı her yeni nesne için farklı farklı alanlarda tutulur.
Normal bir sınıf örneği:
public class normalSınıf {

    public normalSınıf()
    {
      
    }
}

Oluşturulan sınıftan üretilen nesnelerin bellekde ki farklı hafıza adresleri:
normalSınıf n = new normalSınıf();
System.out.println(n.hashCode()); // 2023-06-26 17:44:43.313 4869-4869/com.example.calculator I/System.out: 266307482
normalSınıf n2 = new normalSınıf();
System.out.println(n2.hashCode()); //2023-06-26 17:44:43.313 4869-4869/com.example.calculator I/System.out: 144300235

Göründüğü üzere normal sınıflardan her bir yeni nesne için bellekte farklı bir bölge tahsis edilir. Bu basit programlar için sorun değildir ancak gelişmiş, büyük ve bir çok veriye sahip programlar için sorun oluşturabilir.

Singleton Bir Sınıf ve Sınıf ile Oluşturulan Nesnelerin Bellek Yolları:
Singleton yapısına sahip bir sınıf örneği:
package com.example.calculator;

public class anaSınıf {

    private static anaSınıf ana_Sınıf = null;

    private anaSınıf()
    {
    }

    public static anaSınıf getInstance()
    {
        if (ana_Sınıf == null)
            ana_Sınıf = new anaSınıf();

        return  ana_Sınıf;
    }
}

Singleton sınıftan üretilen nesnelerin bellekde ki aynı hafıza adresleri:
anaSınıf a = anaSınıf.getInstance();
System.out.println(a.hashCode()); // 2023-06-26 17:44:43.314 4869-4869/com.example.calculator I/System.out: 26302632

anaSınıf a2 = anaSınıf.getInstance();
System.out.println(a2.hashCode()); // 2023-06-26 17:44:43.314 4869-4869/com.example.calculator I/System.out: 26302632

Göründüğü üzere Singleton sınıflardan üretilen nesneler bellekde sadece bir yer tahsis eder.

Singleton sınıflar farklı değerler alabilirler:
anaSınıf a = anaSınıf.getInstance();
System.out.println(a.hashCode()); // 2023-06-26 17:44:43.314 4869-4869/com.example.calculator I/System.out: 26302632
a.setYorum("Nesne 1");
System.out.println(a.getYorum()); // 2023-06-26 21:20:39.756 5228-5228/com.example.calculator I/System.out: Nesne 1

anaSınıf a2 = anaSınıf.getInstance();
System.out.println(a2.hashCode()); // 2023-06-26 17:44:43.314 4869-4869/com.example.calculator I/System.out: 26302632
a2.setYorum("Nesne 2");
System.out.println(a2.getYorum()); // 2023-06-26 21:20:39.756 5228-5228/com.example.calculator I/System.out: Nesne 2


Singleton'un temel amacı tek bir örneğin oluşturulması, kaynak kullanımını azaltmak ve nesnenin farklı yerlerde tekrar tekrar oluşturulmasının önüne geçmektir.

Github Adresim: Eminkrkt - Overview
👍 1

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.