Найти тему
Легко в’IT

Паттерны: Синглтон

И первый из паттернов - Синглтон, одиночка по-русски. Тут мне надо сразу рассказать тебе, что такое “экземпляр класса”. У нас есть классы, которые пока не используются статичны и представляют собой скорее библиотеку, в которой мы можем в любой момент взять какую-то книгу и почитать ее, то есть “создать экземпляр класса”, начать пользоваться его методами. Он говорит нам, что экземпляр того или иного класса в коде может быть создан только один. Но здесь надо смотреть, не каждый класс должен иметь такое поведение. Например, если мы говорим про микросервис, который предполагает, что у него существует только одна база данных, то экземпляр класса, обеспечивающий к ней соединение тоже должен быть создан только один. А вот если нам периодически нужно работать с несколькими другими серверами причем параллельно, то здесь синглтон будет так называемым антипаттерном (практически Остер и его “Вредные советы”), так как свойства у нескольких экземпляров одного класса, обеспечивающего соединение со внешними серверами совершенно точно будут разными.

То есть еще раз: Синглтон мы используем только там, где нам гарантированно надо знать, что в единицу времени существует только один экземпляр нашего класса, а все попытки создать новый приведут или к ошибке или к копированию уже существующего экземпляра. В разных языках это реализуется по-разному, например в Java или C# такое можно сделать с использованием статических методов, но пока не забивай себе голову. А еще лучше - подписывайся и зови друзей!

#singleton #паттерны