Mixin и ключевое слово with в Dart
Mixin задают как набор методов с ключевым
словом mixin. Подключение к классу
записывают после имени типа через with.
Методы mixin вызывают у объекта класса обычной
точкой, как собственные команды типа.
Запишем mixin Helper с методом show
и класс Post, который его подключает:
mixin Helper {
void show() {
print("note");
}
}
class Post with Helper {}
Создадим объект и вызовем метод:
var post = Post();
post.show();
Класс Post не дублирует тело show,
но объект post уже умеет его вызвать.
Так mixin дополняет класс готовым поведением
без второго extends.
Тот же mixin Helper можно сочетать с полями
класса. Пусть у Post есть заголовок,
а mixin добавит методы чтения данных записи:
mixin Helper {
String getName() {
return name;
}
int getAge() {
return age;
}
}
class Post with Helper {
String name = "";
int age = 0;
}
Создадим объект, заполним поля и проверим результат:
var post = Post();
post.name = "john";
post.age = 30;
print(post.getName());
print(post.getAge());
Реализуйте класс Employee с полями
name, age, salary
и методами, которые возвращают эти значения.
Вынесите методы чтения в mixin Helper
и подключите его через with.