AndreyWells/lab_5
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Задачи паттерна проектирования "Стратегия": 1. Добавить возможность подключения к операционным системам с помощью различных устройств, будь то ноутбук, планшет, телефон или телевизор. Предусмотреть возможность расширения, без изменения существующего интерфейса. Осуществить это можно: 1. Создание абстрактного класса стратегии входа с устройств с виртуальной функцией входа. 2. Создание перечисляемого типа данных(опционально: инкапсулирование в абстрактный класс стратегии) 3. Унаследовать от абстрактного класса 4 других, в которых будем добавлять реализацию функции входа. 4. Создание фабричной функции, в которой будем динамически создавать объект нужного класса, в зависимости от переданного устройства. 5. Инкапсулировать стратегию входа в абстрактный класс операционных систем. 6. Добавить инициализацию стратегии входа нулем в конструкторе. 7. В унаследованных классах задать тип устройства по умолчанию. 8. Создать сеттер, на вход которого будет передаваться стратегия входа, и которой будет задавать ее для ОС. 9. Добавить в виртуальную функцию Connect абстрактного класса ОС использование полученной стратегии. Задачи для паттерна проектирования "Шаблонный метод": 1. Уменьшить дублирование кода в унаследованных классах и структурировать функцию Connect абстрактного класса ОС. Осуществить это можно: 1. В абстрактный класс ОС добавить чисто виртуальные функции для вывода типа ОС, места подключения с устройства. 2. Добавить реализацию этих функций в унаследованные классы. 3. Вынести в отдельные функции части из функции Connect, которые будут содержать проверку статуса ОС с помощью геттера из абстрактного класса и подключение с нужного устройства, в зависимости от переданного устройства по умолчанию. 4. Сделать функцию Connect из абстрактного класса ОС не виртуальной, а написать для нее структуру, состоящую из: вывода названия, проверки статуса ос, места входа и подключения с устройства.