0Pricing
Dart Academy · Урок

Миксины с ключевым словом 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 — локальная установка не требуется.

Все уроки этого курса

  1. extends и переопределение методов
  2. Вызов super и цепочка конструкторов
  3. Миксины с ключевым словом with
  4. Ограничения on и порядок миксинов
← Назад к Dart Academy