Часть 1: Вспоминаем основы С++
Цель: повтор основных элементов и синтаксиса C++.
Краткое содержание:
- Указатели и работа с динамической памятью
- Подпрограммы (функции / методы)
- Модификаторы видимости
- Структуры
- Классы и объекты
- Конструкторы
- Операторы присваивания
- Деструкторы
- Правило "трёх" / "пяти"
Часть 2: Введение в ООП
Цель: знакомство с основными принципами ООП.
Знакомство с ключевыми принципами ООП:
- Инкапсуляцией;
- Наследование
- Полиморфизм
Новые элементы синтаксиса:
- Перегрузка функций и операторов
- Шаблоны
- Статические члены класса
- Дружественные функции и классы
Часть 3: Применение ООП в практическом решении задач
Цель: закрепление знаний и навыков, полученных на прошлых занятиях. Задания для самостоятельной работы:
- Задача 1: Система поиска по документам и файлам;
- Задача 2: Система бронирования отелей.
Часть 4: Паттерны проектирования
Принципы проектирования:
MVC (Model-View-Controller)
MVC разделяет приложение на три компонента: Model
, View
и Controller
. Модель отвечает за управление данными и бизнес-логику, Вид отображает интерфейс пользователю, а Контроллер обрабатывает пользовательский ввод и взаимодействует с Моделью и Видом. Этот паттерн используется для того, чтобы отделить логику приложения от его интерфейса, повышая масштабируемость и удобство поддержки продукта в будущем.
Задача: разработать систему управления каталогом товаров.
-
Упрощенный вариант (консольное приложение):
- Создать консольное приложение, позволяющее пользователям управлять каталогом товаров.
- Модель хранит данные о товарах (название, цена, количество).
- Контроллер обрабатывает ввод пользователя.
- Вид отображает данные в консоли.
-
Усложненный вариант (GUI с использованием Qt):
- Приложение с графическим интерфейсом, где пользователи могут просматривать и редактировать товары.
- Модель хранит данные в виде списка.
- Вид предоставляет интерфейс на основе Qt, позволяющий управлять товарами через формы и таблицы.
Порождающие паттерны
Фабричный метод
Паттерн Фабричный Метод определяет интерфейс создания объекта, но позволяет субклассам выбрать класс создаваемого экемпляра. Таким образом, Фабричный Метод делегирует операцию создания экземпляра субклассам.
- Одиночка
- Прототип
Структурные паттерны
Адаптер
Паттерн Адаптер используется для преобразования интерфейса одного класса в интерфейс, ожидаемый клиентом. Адаптер позволяет классам с несовместимыми интерфейсами работать вместе.
- Компоновщик
- Декоратор
Поведенческие паттерны
Наблюдатель
Паттерн Наблюдатель определяет отношение "один ко многим" между объектами таким образом, что при изменении состояния одного объекта происходит автоматическое оповещение и обновление всех зависимых объектов.
- Стратегия
- Состояние
Часть 5: Проверка усвоенного материала
В качестве финального задания курса, необходимо разработать программу в соответствии с номером варианта, который определяется по формуле: номер зачетки % {кол-во вариантов} + 1
.
Задания могут быть выполненны в обычном и усложненном варианте. Обычный вариант - консольная программа. Для усложненного варианта необходимо реализовать графический интерфейс с использованием Qt или ImGui.