- Katılım
- 3 Mayıs 2021
- Mesajlar
- 2,233
- Çözümler
- 8
- Reaksiyon puanı
- 1,939
- Puanları
- 358
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:
Oluşturulan sınıftan üretilen nesnelerin bellekde ki farklı hafıza adresleri:
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:
Singleton sınıftan üretilen nesnelerin bellekde ki aynı hafıza adresleri:
Göründüğü üzere Singleton sınıflardan üretilen nesneler bellekde sadece bir yer tahsis eder.
Singleton sınıflar farklı değerler alabilirler:
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
Ö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:
Java:
public class normalSınıf {
public normalSınıf()
{
}
}
Java:
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
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:
Java:
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;
}
}
Java:
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
Singleton sınıflar farklı değerler alabilirler:
Java:
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