Урок 0: Зачем вообще организовывать код в объекты?
Вы уже умеете писать функции, переменные и циклы. Но растущая процедурная программа склонна расползаться: переменные вроде customer_name, customer_balance и customer_history появляются в нескольких разных местах кода, а отдельные функции вроде calculate_discount() и print_receipt() каждая по-своему
Когда каждый факт о «клиенте» разбросан по десяткам отдельных переменных и функций, легко пропустить одну копию, когда что-то меняется. ООП говорит: держите всё, что относится к клиенту — данные и действия — вместе, в одном месте.
- процедурное дублирование
- Ситуация, когда одни и те же данные или бизнес-логика существуют как отдельные копии в разных местах кода.
- разбросанное состояние
- Данные, принадлежащие одной и той же реальной «вещи» (например, клиенту), но хранящиеся в отдельных, несобранных переменных.
- единый источник истины
- Одно однозначное определение того, чем является и что делает данная «вещь», на которое ссылается каждая часть программы.
- объединение данных и поведения
- Ключевой принцип ООП: группировать данные вещи вместе с операциями, которые она может выполнять, в одном месте.