Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtOpMxSO 61 of 113 menu
◀ ▶

Несколько mixin у одного класса в Dart

У одного класса может быть несколько mixin. Их перечисляют через запятую после with. Так удобно собирать поведение из отдельных фрагментов, не выстраивая длинную цепочку наследования.

Mixin Helper1 хранит заголовок, а Helper2 - число лайков:

mixin Helper1 { String title = ""; String getTitle() { return title; } } mixin Helper2 { int likes = 0; int getLikes() { return likes; } } class Post with Helper1, Helper2 {}

Создадим объект, заполним поля и проверим результат:

var post = Post(); post.title = "note"; post.likes = 3; print(post.getTitle()); print(post.getLikes());

Если два mixin объявляют один и тот же метод, например show, побеждает тот, который стоит правее в списке with. Порядок важен: при записи with Helper1, Helper2 сработает show из Helper2:

mixin Helper1 { void show() { print("from Helper1"); } } mixin Helper2 { void show() { print("from Helper2"); } } class Post with Helper1, Helper2 {}

Создадим объект и вызовем метод:

var post = Post(); post.show();

Сделайте три mixin Helper, Helper1 и Helper2. В первом пусть будет метод method1, возвращающий 1, во втором - method2, возвращающий 2, в третьем - method3, возвращающий 3.

Сделайте класс Employee с mixin Helper, Helper1 и Helper2. Добавьте публичный метод getSum, который возвращает сумму результатов method1, method2 и method3.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить