Сохрани — эти 5 принципов спасут твой проект от бардака, когда ты начнёшь добавлять новую фичу в старую игру.
S — Единая ответственность (Single Responsibility)
Класс должен делать что-то одно. Не создавай монстров вроде
PlayerController, который и двигается, и стреляет, и UI обновляет.✅ Правильно:
PlayerMovement, PlayerShooter, PlayerHealth — отдельные скрипты. Меняешь движение — не трогаешь логику выстрела.O — Открытость/закрытость (Open/Closed)
Код должен быть открыт для расширения, но закрыт для изменений.
Допустим, у тебя система урона. Не пиши
if (enemy is Goblin) {...} else if (enemy is Dragon) {...}.✅ Правильно: создай базовый класс
Enemy с виртуальным методом TakeDamage(). Для нового типа врага просто создай новый класс — старый код менять не придётся.L — Подстановка Лисков (Liskov Substitution)
Наследник должен уметь всё то же, что и родитель. Если твой
FlyingEnemy наследуется от Enemy, он должен корректно работать во всех сценариях, где используется Enemy.✅ Правильно: не переопределяй методы базового класса так, чтобы они ломали логику (например,
Move() в наследнике не должен телепортировать объект, если в базовом классе это плавное движение).I — Разделение интерфейсов (Interface Segregation)
Не заставляй класс реализовывать то, что ему не нужно. Не создавай монстро-интерфейс
IUnit с методами Move(), Shoot(), Build().✅ Правильно: сделай узкие интерфейсы
IMovable, IAttackable, IBuilder. Класс Turret реализует только IAttackable, а Worker — IMovable и IBuilder.D — Инверсия зависимостей (Dependency Inversion)
Завись от абстракций (интерфейсов), а не от конкретных классов.
Не пиши в коде
public Rifle currentWeapon;.✅ Правильно:
public IWeapon currentWeapon;. Теперь можно подсунуть любое оружие — пистолет, меч, гранату — и система будет работать. Идеально для быстрого прототипирования и тестов.💎 Итог: SOLID — это про то, чтобы добавлять фичи быстро, а не разгребать баги неделями. Начни с принципов S и O — они дают самый заметный эффект.
💬 Какой принцип для тебя самый полезный?
📌 Сохрани шпаргалку.
🔔 Подпишись — дальше будем разбирать паттерны в геймдеве.
👉Akrus Games | Unity