Skip to content

Commit 268e414

Browse files
demirhalilHalil Demirohbus
authored
iluwatar#1625 add Turkish translation for singleton design pattern (iluwatar#1665)
Co-authored-by: Halil Demir <[email protected]> Co-authored-by: Subhrodip Mohanta <[email protected]>
1 parent 0220f3d commit 268e414

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

tr/singleton/README.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
layout: pattern
3+
title: Singleton
4+
folder: singleton
5+
permalink: /patterns/singleton/
6+
categories: Creational
7+
tags:
8+
- Gang of Four
9+
---
10+
11+
## Amaç
12+
13+
Bir sınıfın yalnızca bir örneğine sahip olduğundan emin olun ve ona global bir erişim noktası sağlayın.
14+
15+
16+
## Açıklama
17+
18+
Örnek
19+
20+
> Büyücülerin büyülerini çalıstıkları tek bir fildişi kule olabilir. Aynı büyülü fildişi kule,
21+
> büyücüler tarafından her zaman kullanılır. Buradaki fildişi kulesi singleton tasarım desenine örnektir.
22+
Özetle
23+
24+
> Belirli bir sınıftan yalnızca bir nesnenin oluşturulmasını sağlar.
25+
Wikipedia açıklaması
26+
27+
28+
29+
> Yazılım mühendisliğinde, tekil desen, bir sınıfın somutlaştırılmasını tek bir nesneyle sınırlayan
30+
> bir yazılım tasarım modelidir.Bu,sistemdeki eylemleri koordine etmek için
31+
> tam olarak bir nesne gerektiğinde kullanışlıdır.
32+
**Örnek**
33+
34+
Joshua Bloch, Effective Java 2nd Edition p.18
35+
36+
> Enum singleton tasarım desenini uygulamak için en iyi yoldur.
37+
```java
38+
public enum EnumIvoryTower {
39+
INSTANCE
40+
}
41+
```
42+
43+
Tanımladıktan sonra kullanmak için:
44+
45+
```java
46+
var enumIvoryTower1 = EnumIvoryTower.INSTANCE;
47+
var enumIvoryTower2 = EnumIvoryTower.INSTANCE;
48+
assertEquals(enumIvoryTower1, enumIvoryTower2); // true
49+
```
50+
51+
## Sınıf diagramı
52+
53+
![alt text](https://github.com/iluwatar/java-design-patterns/blob/master/singleton/etc/singleton.urm.png)
54+
55+
## Uygulanabilirlik
56+
57+
Singleton tasarım deseni şu durumlarda kullanılmalıdır
58+
59+
* Bir sınıfın tam olarak bir örneği olmalı ve iyi bilinen bir erişim noktasından istemciler tarafından erişilebilir olmalıdır.
60+
* Tek örnek alt sınıflandırma yoluyla genişletilebilir olduğunda ve istemciler, kodlarını değiştirmeden genişletilmiş bir örnek kullanabilmelidir
61+
62+
## Use Case
63+
64+
* Logging sınıflarında
65+
* Database bağlantılarını yönetmek için
66+
* File manager
67+
68+
## Gerçek dünya örnekleri
69+
70+
* [java.lang.Runtime#getRuntime()](http://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html#getRuntime%28%29)
71+
* [java.awt.Desktop#getDesktop()](http://docs.oracle.com/javase/8/docs/api/java/awt/Desktop.html#getDesktop--)
72+
* [java.lang.System#getSecurityManager()](http://docs.oracle.com/javase/8/docs/api/java/lang/System.html#getSecurityManager--)
73+
74+
75+
## Sonuçlar
76+
77+
* Kendi yaratımını ve yaşam döngüsünü kontrol ederek Tek Sorumluluk İlkesini (SRP) ihlal ediyor.
78+
* Bu nesne tarafından kullanılan bir nesnenin ve kaynakların serbest bırakılmasını önleyen global bir paylaşılan örnek kullanmayı teşvik eder.
79+
* Birbirine sıkı bağlı kod oluşturur. Singleton tasarım deseni kullanan istemci sınıflarını test etmek zorlaşır.
80+
* Bir Singleton tasarım deseninden alt sınıflar oluşturmak neredeyse imkansız hale gelir.
81+
82+
## Credits
83+
84+
* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59)
85+
* [Effective Java](https://www.amazon.com/gp/product/0134685997/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0134685997&linkCode=as2&tag=javadesignpat-20&linkId=4e349f4b3ff8c50123f8147c828e53eb)
86+
* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b)
87+
* [Refactoring to Patterns](https://www.amazon.com/gp/product/0321213351/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0321213351&linkCode=as2&tag=javadesignpat-20&linkId=2a76fcb387234bc71b1c61150b3cc3a7)

0 commit comments

Comments
 (0)