Савва · продакт, #antrakt-product
Партнёрам нужны промокоды, к пятнице. Глеб перед уходом говорил, что это «ещё два класса заказа, а потом ещё два, если сбор поменяем». Тимур ворчит, что так нельзя. Ты в коде Глеба уже разобрался, скажи: сколько это займёт и почему каждый раз новые классы?
В прошлом уроке ты научил функцию громко сообщать о беде. Сегодня разберём, когда одной функции мало и нужен класс, и почему классы Глеба размножаются с каждым новым промокодом. К концу урока у Саввы будет ответ, а у заказа ни одного наследника.
Кассир и бланк
Кассир в «Антракте» работает как функция. Ты называешь места и промокод, он считает сумму и забывает тебя. Следующий зритель начинает с чистого листа: между покупателями кассиру нечего помнить.
Корзина на сайте устроена иначе. Зритель кладёт билет, уходит смотреть схему зала, кладёт второй, убирает первый. Корзина помнит, что в ней лежит, и следит за правилами: не больше десяти билетов, одно место не кладут дважды. Это бланк заказа, который заполняют постепенно, и у каждого зрителя свой экземпляр бланка.
Отсюда главное правило урока. Нет памяти между вызовами: хватит функции. Есть состояние, которое меняется, и правила, которые должны соблюдаться всегда: пора заводить класс.
урок из курса
Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.