Задание 1: Определение класса с Singleton паттерном
- Создайте класс Singleton с использованием метода __new__, который будет контролировать создание экземпляров так, чтобы класс имел только один экземпляр.
- Убедитесь, что при попытке создания второго экземпляра возвращается ссылка на уже существующий экземпляр.
Задание 2: Работа с атрибутами в Singleton
- Добавьте локальные свойства username и password в ваш класс Singleton.
- Измените метод __init__ так, чтобы он устанавливал эти свойства, но не изменял их, если экземпляр уже существует.
Задание 3: Тестирование Singleton класса
- Создайте несколько экземпляров вашего класса Singleton с различными значениями свойств username и password.
- Проверьте, что все созданные экземпляры ссылаются на один и тот же объект и что свойства не изменились после первоначальной инициализации.
Задание 4: Управление состоянием в Singleton
- Измените класс Singleton, добавив методы для аутентификации, которые позволят безопасно изменять username и password.
- Убедитесь, что изменения применяются ко всем ссылкам на Singleton экземпляр.
По итогу пройдённых практических заданий вы сможете усвоить:
- Работу метода __new__ и его отличие от __init__: Вы научитесь, как метод __new__ используется для создания объектов и как он предшествует вызову метода __init__.
- Паттерн Singleton: Вы поймете, как реализовать паттерн Singleton, чтобы класс имел только один экземпляр в приложении.
- Контроль создания экземпляров: Вы узнаете, как контролировать процесс создания экземпляров, предотвращая создание новых экземпляров там, где это не нужно.
- Управление состоянием Singleton экземпляра: Вы освоите методы управления состоянием экземпляра, которые позволяют избежать проблем при изменении свойств в Singleton классе.
- Применение теоретических знаний на практике: Вы закрепите теоретические знания о магических методах и паттерне проектирования на практических примерах.
Пример выполнения задания можно посмотреть тут: https://clck.ru/3AMJ3U