Using Mixins

This example illustrates how to use mixins to share behavior between classes.

mixin Logger {
  void log(String message) {
    print('LOG: $message');
  }
}

class User with Logger {
  String name;

  User(this.name);

  void sayHello() {
    log('User $name says hello!');
  }
}

class Admin with Logger {
  String adminName;

  Admin(this.adminName);

  void performAdminTask() {
    log('Admin $adminName is performing an admin task.');
  }
}

void main() {
  var user = User('Alice');
  user.sayHello();

  var admin = Admin('Bob');
  admin.performAdminTask();
}

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *