dart_inversion_of_control 1.0.1 copy "dart_inversion_of_control: ^1.0.1" to clipboard
dart_inversion_of_control: ^1.0.1 copied to clipboard

A simple library to facilitate inversion of control in dart.

example/lib/example.dart

import 'package:dart_inversion_of_control/dartioc.dart';

void main() {
  Container('user').register(User, () => User());

  var user = Container('user').locate(User);
  print(user.name); // Generic

  Container('user').register(User, () => Bob());

  user = Container('user').locate(User);
  print(user.name); // Bob

  Container('user').register(User, () => Alice());

  user = Container('user').locate(User);
  print(user.name); // Alice

  // register a singleton
  Container('user').register(User, () => Alice(), singleton: true);
  Container('user').locate(User).printName(); // Alice

  // register a singleton
  Container('user').register(User, () => Bob(), singleton: true);
  Container('user').locate(User).printAge(); // Alice
}

class User {
  String name = 'Generic';
}

class Bob extends User {
  @override
  String name = 'Bob';

  void printAge() {
    print('20');
  }
}

class Alice extends User {
  @override
  String name = 'Alice';

  void printName() {
    print(name);
  }
}
1
likes
40
pub points
0%
popularity

Publisher

verified publisherapolexian.xyz

A simple library to facilitate inversion of control in dart.

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

More

Packages that depend on dart_inversion_of_control