Як би ви реалізували шаблон одного елемента в C#?
2024У C# шаблон singleton зазвичай реалізується за допомогою зробивши конструктор екземпляра класу приватним, але потім надавши загальнодоступне статичне поле лише для читання або властивість лише для отримання (або обидва) для цього класу, який відкриває один екземпляр.8 червня 2017 р
Все, що вам потрібно зробити, це передати делегат конструктору, який викликає конструктор Singleton – що найпростіше зробити за допомогою лямбда-виразу. Це просто і добре працює. Це також дозволяє вам перевірити, чи екземпляр уже створено за допомогою властивості IsValueCreated, якщо вам це потрібно.
Як реалізувати
- Додайте приватне статичне поле до класу для зберігання екземпляра єдиного елемента.
- Оголошіть відкритий статичний метод створення для отримання екземпляра єдиного елемента.
- Реалізуйте «ліниву ініціалізацію» всередині статичного методу. …
- Зробіть конструктор класу приватним.
Класи Singleton мають велике значення коли потрібно створити лише один екземпляр класу. У галасливому місті розробки на C# ця модель інтелектуального дизайну знаходить застосування в багатьох сценаріях – будь то представлення єдиного підключення до БД, яке використовується кількома об’єктами, або читання файлу конфігурації.
Фабричний метод визначає інтерфейс для створення об’єкта та дозволяє підкласам вирішити, який клас створити екземпляр. Це дозволяє класу відкладати створення екземплярів для підкласів. Шаблон проектування Singleton, який дозволяє переконатися, що клас має лише один екземпляр, надаючи при цьому глобальну точку доступу до цього екземпляра.
Об’єкти з областю дії однакові для певного запиту, але відрізняються для кожного нового запиту. Об’єкти Singleton однакові для кожного запиту.
Singleton — це клас, який керує одним своїм екземпляром і не дозволяє іншим класам створювати новий екземпляр самостійно. Єдиний спосіб отримати екземпляр — пройти через сам клас Singleton.Синглтони часто використовуються для забезпечення глобальної точки доступу для певної служби.