Mixin class
mixin class - это класс, который можно
одновременно использовать и как обычный класс
(создавать его экземпляры, наследоваться от него),
и как примесь (подмешивать его функциональность
другим классам через with). Такой класс
не может иметь конструктор с параметрами
и не может наследоваться от другого класса,
кроме Object. Объявляется он с помощью
ключевых слов mixin class перед именем класса.
Синтаксис
mixin class Name
{
// body
}
Пример
Давайте объявим mixin class и используем
его как примесь для другого класса:
mixin class Greet
{
void hello()
{
print('abcde');
}
}
class User with Greet
{
}
void main()
{
User user = User();
user.hello();
}
Результат выполнения кода:
"abcde"
Пример
Давайте создадим экземпляр самого mixin class,
так как он является полноценным классом:
mixin class Greet
{
void hello()
{
print('12345');
}
}
void main()
{
Greet greet = Greet();
greet.hello();
}
Результат выполнения кода:
"12345"
Пример
Давайте подмешаем сразу несколько mixin class
в один класс:
mixin class A
{
void showA()
{
print('a');
}
}
mixin class B
{
void showB()
{
print('b');
}
}
class C with A, B
{
}
void main()
{
C c = C();
c.showA();
c.showB();
}
Результат выполнения кода:
"a"
"b"