Разделы
Основы ООП
- Инкапсуляция и сокрытие. Суть каждого принципа, применение по отдельности, применение обоих принципов. Способы реализации сокрытия.
- Полиморфизм подтипов. Основная идея, способы реализации полиморфизма подтипов и их различия.
- Композиция. Основная идея, виды композиции и их различия.
- Наследование и композиция. Корректные и некорректные использования наследования. Преимущества композиции перед наследованием.
SOLID и GRASP
- SRP и ISP. Основные идеи, соотношения принципов. Как исправлять код, нарушающий их?
- OCP. Основная идея, проверка соблюдения, механизмы соблюдения.
- LSP и DIP. Определения принципов. Примеры нарушения, способы исправления.
- Coupling и Cohesion. Что значат данные понятия? Правильное соотношение между ними, обоснование этого отношения.
- Protected Variations. Основная идея. С каким принципом SOLID коррелирует? Чем отличается?
Порождающие паттерны
- Фабричный Метод и Фабрика. Структура паттернов и её различие. В чем основной недостаток Фабричного Метода и как Фабрика его решает?
- Билдер. Основная идея и основная ошибка в реализации. Виды билдеров и их различия. Что такое Директор и зачем он нужен?
- Прототип. Основная идея, преимущества перед конструктором копирования, виды копирования.
- Синглтон. Основная идея и недостатки.