Миксины с ключевым словом with
Добавление возможностей без единственного наследования
«Миксины с ключевым словом with» — бесплатный урок Dart Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.
За пределами одного родителя
Класс Dart может наследоваться только от одного родителя, но часто Вам нужны возможности из нескольких источников. Примесь позволяет аккуратно добавить дополнительное поведение. 🧩
Объявление примеси
Примесь определяется с помощью ключевого слова mixin. Она похожа на класс, но предназначена для добавления в другие классы, а не для самостоятельного создания экземпляров.
mixin Swimmer {
void swim() => print('Swimming');
}Ключевое слово with
Примесь подключается с помощью with после объявления класса. Класс сразу получает все методы, определённые в примеси.
class Fish with Swimmer {}
// Fish().swim() worksПодключение нескольких примесей
Разделяйте несколько примесей запятыми. Класс может одновременно включать много примесей, каждая из которых добавляет свою часть поведения.
class Duck with Swimmer, Flyer {}Сочетание extends и with
Примеси работают вместе с наследованием. Сначала укажите extends для единственного родителя, а затем with для нужных примесей.
class Duck extends Bird with Swimmer, Flyer {}Примеси хранят состояние
Примесь может содержать не только методы, но и поля. Любой класс, в который она включена, получает это состояние как часть самого себя.
mixin Counter {
int count = 0;
void tick() => count++;
}Не предназначены для создания экземпляров
Нельзя написать new для чистой примеси. Она существует только для включения в настоящие классы, поэтому Dart запрещает создавать её напрямую.
Повторное использование в разных деревьях
В отличие от суперкласса, одну и ту же примесь можно добавить в совершенно несвязанные классы. Так Вы делитесь кодом, не создавая искусственную иерархию.
Примеси являются типами
Класс с добавленной примесью также считается её типом. Вы можете сохранить Fish в переменной типа Swimmer и вызвать его общие методы.
Swimmer s = Fish();
s.swim();Композиция вместо наследования
Примеси поощряют сборку небольших целенаправленных возможностей. Вы составляете поведение из повторно используемых частей, а не создаёте глубокую иерархию.
Делайте примеси целенаправленными
Хорошая примесь выполняет одну задачу, например ведение журнала или сериализацию. Небольшие примеси с одной целью легко объединять без неожиданных конфликтов.
Быстрая проверка
Вспомните, как подключить примесь к классу.
Повторение
Вы объявили mixin, подключили его с помощью ключевого слова with, объединили несколько примесей и поделились поведением между несвязанными классами. 🧩
Часто задаваемые вопросы
Урок «Миксины с ключевым словом with» бесплатный?
Да — полный текст урока «Миксины с ключевым словом with» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.
Чему я научусь в уроке «Миксины с ключевым словом with»?
Добавление возможностей без единственного наследования Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Dart Academy?
Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Миксины с ключевым словом with»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Dart Academy?
Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- extends и переопределение методов
- Вызов super и цепочка конструкторов
- Миксины с ключевым словом with
- Ограничения on и порядок миксинов