Один из простейших и важнейших паттернов - Singleton. Данный паттерн решает проблему организации доступа к классу, который реализует какую-нибудь общую функциональность. Как сделать структуру, где будет реализован один объект и возможность использовать его в разных местах оптимизировано? Подробнее в этой статье.
Разбор на примере
Предположим, что нужно создать оболочку для работы с запросами. Для этого реализуем отдельный класс RequestManager. Реализации полноценного менеджера запросов не будет, т.к. не в нем суть.
Менеджер запросов есть и всё работает. Для вызова нужно создать новый объект класса RequestManager и использовать его методы.
Вроде бы всё красиво, но если нам нужно использовать этот менеджер в других местах то придется создавать новый экземпляр класса RequestManager. Для решения этой проблемы используем паттерн Singleton.
Теперь можно получить класс RequestManager из любого места через метод GetInstance().
Результат:
Итог
Паттерн Singleton позволяет реализовать класс одиночку, который может существовать в одном экземпляре. Это позволяет сэкономить память и хранить данные в этом классе более защищено, чем при создании полностью статического класса.
Телеграмм канал: https://t.me/dotnetreview