О чём занятие
На этом занятии явно смотрим на ООП в Go: не «как в Java/C++», а как те же идеи живут в языке без классических классов. Разберём три основных принципа — инкапсуляцию, наследование и полиморфизм — и сразу применим их к модели Task.
Инкапсуляция в Go строится через пакеты и exported/unexported поля и методы: прячем внутренности, оставляем наружу понятный контракт. «Наследование» здесь — скорее композиция и embedding структур: собираем поведение из частей, а не через глубокую иерархию классов.
Полиморфизм даём через интерфейсы: описываем поведение, а не родословную типов. Параллельно закрепим struct и методы (value / pointer receiver), обработку ошибок и аккуратную организацию кода — чтобы ООП-принципы работали в реальном сервисе, а не только на слайдах.
Что разберём
- ООП в Go: зачем оно нужно и чем отличается от классических классов
- Инкапсуляция: пакеты, видимость, exported / unexported
- Наследование через композицию и embedding структур
- Полиморфизм через интерфейсы
- Struct, методы, value / pointer receiver
- Ошибки, defer; практика на модели Task
Модель Task через struct + methods: инкапсуляция полей, композиция и интерфейсное поведение там, где это уместно.