Практика на mixin в Dart
Восемь задач на повторное использование поведения через mixin без дублирования кода в классе работника.
Объявите mixin Helper с методом emit(),
который выводит "ok". Класс Employee
подключите через with Helper и вызовите
emit() у созданного объекта.
Сделайте mixin Helper1 с методом dept()
и mixin Helper2 с методом rank().
Класс Employee хранит department
и level, подключает оба mixin и возвращает
их значения из методов mixin.
Подключите к Employee три mixin:
Helper, Helper1, Helper2
с методами a(), b(), c(),
возвращающими 4, 5 и 6.
Добавьте метод total() с суммой трех чисел.
Дан следующий код:
mixin Helper1 {
void ping() {
print("alpha");
}
}
mixin Helper2 {
void ping() {
print("beta");
}
}
class Employee with Helper1, Helper2 {}
Создадим объект и вызовем метод:
var emp = Employee();
emp.ping();
Запишите, что напечатает запуск. Поменяйте порядок mixin в объявлении класса и сравните вывод.
Mixin Helper выводит "base".
Класс Employee с полем name
переопределяет метод mixin, вызывает super
и печатает имя на следующей строке.
Класс Employee хранит salary.
Объявите mixin Helper on Employee
с методом showSalary() и подключите mixin
в подклассе Manager. Выведите зарплату.
Дан следующий код:
mixin TestTrait {
int seed() {
return 100;
}
int bonus();
}
class Employee with TestTrait {
@override
int bonus() {
return 7;
}
}
Выведите сумму seed() и bonus().
Удалите реализацию bonus и убедитесь,
что анализатор сообщает об ошибке.
Объявите mixin class Helper с методом
mark(). Подключите его к Employee,
создайте отдельный объект Helper
и вызовите mark() у обоих получателей.