Раздел 43 · Автотестирование с нуля

Классы и объекты

junior~25 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Савва · продакт, #antrakt-product

Партнёрам нужны промокоды, к пятнице. Глеб перед уходом говорил, что это «ещё два класса заказа, а потом ещё два, если сбор поменяем». Тимур ворчит, что так нельзя. Ты в коде Глеба уже разобрался, скажи: сколько это займёт и почему каждый раз новые классы?

В прошлом уроке ты научил функцию громко сообщать о беде. Сегодня разберём, когда одной функции мало и нужен класс, и почему классы Глеба размножаются с каждым новым промокодом. К концу урока у Саввы будет ответ, а у заказа ни одного наследника.

Кассир и бланк

Кассир в «Антракте» работает как функция. Ты называешь места и промокод, он считает сумму и забывает тебя. Следующий зритель начинает с чистого листа: между покупателями кассиру нечего помнить.

Корзина на сайте устроена иначе. Зритель кладёт билет, уходит смотреть схему зала, кладёт второй, убирает первый. Корзина помнит, что в ней лежит, и следит за правилами: не больше десяти билетов, одно место не кладут дважды. Это бланк заказа, который заполняют постепенно, и у каждого зрителя свой экземпляр бланка.

Отсюда главное правило урока. Нет памяти между вызовами: хватит функции. Есть состояние, которое меняется, и правила, которые должны соблюдаться всегда: пора заводить класс.

урок из курса

Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.