2010-09-03 3:18:03 - Νε μξγσ ηΰοθρΰςό δΰννϋε β τΰιλ: /home/adiodomcom/domains/adiodom.com/public_html/xap275677sp64fcache/cache_adiodom_com_a1.txt
2010-09-03 3:18:03 - Νε μξγσ ηΰοθρΰςό δΰννϋε β τΰιλ: /home/adiodomcom/domains/adiodom.com/public_html/xap275677sp64fcache/cache_adiodom_com_a1.txt
2010-09-03 3:18:04 - Νε μξγσ ηΰοθρΰςό δΰννϋε β τΰιλ: /home/adiodomcom/domains/adiodom.com/public_html/xap275677sp64fcache/cache_adiodom_com_a1.txt
ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Singleton (ΠžΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠ°) - AdioDom.com

ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Singleton (ΠžΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠ°)

Singleton-это шаблон проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ класса.

Π―Ρ€ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ класс взаимодСйствия с Π‘Π”. Π’ Π½Π΅ΠΌ хранится ссылка Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ соСдинСниС, ΠΈ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ классы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π‘Π” Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ. Π”Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ класс статичным нСцСлСсообразно, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ с нСсколькими сСрвСрами Π‘Π”. ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΆΠ΅ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с Π‘Π”, Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ класс, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½ΡƒΠΆΠ΅Π½ доступ ΠΊ Π±Π°Π·Π΅ - нСкрасивоС ΠΈ Π²Ρ€Π΅Π΄Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.
ВмСсто этого, Π² классС, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ с Π‘Π”, ΠΌΠΎΠΆΠ½ΠΎ ввСсти ΠΌΠ΅Ρ‚ΠΎΠ΄ getInstance(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π» ссылку Π½Π° созданный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΅Ρ‰Π΅ Π½Π΅ создан, Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ getInstance() ΠΌΠΎΠΆΠ΅Ρ‚ сначала ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ссылку Π½Π° Π½Π΅Π³ΠΎ. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π²Π° ΠΈ Π±ΠΎΠ»Π΅Π΅ соСдинСний с Π±Π°Π·ΠΎΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² массивС, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ getInstance() ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

public class Singleton {
private static final Singleton instance;

private Singleton () {
}

public
synchronized static final Singleton getInstance() {
if(instance==null)
ourInstance = new Singleton();
return instance;
}
}

 ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ видимости private. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ созданиС экзСмпляров класса ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса Singleton, Ρ‚Π°ΠΊ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΅Π³ΠΎ наслСдников. Π’ связи с этим ΠΊ объявлСнию класса смСло ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ final.
ΠœΠ΅Ρ‚ΠΎΠ΄ getInstance() создаст Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр класса Singleton. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ объявлСн ΠΊΠ°ΠΊ synchronized. Π‘Π΄Π΅Π»Π°Π½ΠΎ это ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΊ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° getInstance() ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколько экзСмпляров класса Singleton. А Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½!
ΠžΡ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° synchronized ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ. Для этого instance Π½ΡƒΠΆΠ½ΠΎ
ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

private static Singleton instance = new Singleton();

Π° Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ getInstance() ΠΌΠΎΠΆΠ½Π°  ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ “if”.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Singleton Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ класса Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр, ΠΈ прСдоставляСт ΠΊ Π½Π΅ΠΌΡƒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ доступа.

Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Ρ‹ ΠΈΠ³Ρ€Ρ‹ : ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ flv player : Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° сайта ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ оптимизация ΠΊΠΈΠ΅Π² супСр-Ρ†Π΅Π½Ρ‹ . sklad.com - поставщики услуг ΠšΠ°Π·Π°Ρ…ΡΡ‚Π°Π½Π°. Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€