View in Telegram
πŸ”₯ Объясни, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Singleton ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² C# ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Singleton - это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт созданиС СдинствСнного экзСмпляра класса ΠΈ прСдоставляСт Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ доступа ΠΊ этому экзСмпляру. Он ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ доступ ΠΊ СдинствСнному рСсурсу, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ прилоТСния ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° Singleton Π½Π° C#:
public class Singleton
{
    // Π₯Ρ€Π°Π½ΠΈΡ‚ СдинствСнный экзСмпляр класса
    private static Singleton _instance;

    // ΠžΠ±ΡŠΠ΅ΠΊΡ‚ для синхронизации доступа ΠΊ экзСмпляру
    private static readonly object _lock = new object();

    // Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ конструктор, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ созданиС экзСмпляров ΠΈΠ·Π²Π½Π΅
    private Singleton() 
    {
    }

    // ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для получСния СдинствСнного экзСмпляра
    public static Singleton Instance
    {
        get
        {
            // Двойная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
            if (_instance == null)
            {
                lock (_lock)
                {
                    if (_instance == null)
                    {
                        _instance = new Singleton();
                    }
                }
            }
            return _instance;
        }
    }

    // ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса
    public void SomeMethod()
    {
        // Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°
    }
}
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ потокобСзопасный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с использованиСм Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (lock) для прСдотвращСния создания Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… экзСмпляров класса Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ срСдС. Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ конструктор Π½Π΅ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляры класса ΠΈΠ·Π²Π½Π΅, Π° статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Instance Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ создан Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр. Π‘Ρ‚Π°Π²ΡŒ πŸ‘, Ссли Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ! Π•Ρ‰Π΅ большС ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ собСсСдованиям Π½Π° сайтС πŸ‘ˆ
Please open Telegram to view this post
VIEW IN TELEGRAM
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Find friends or serious relationships easily