dart_inversion_of_control 1.0.1
dart_inversion_of_control: ^1.0.1 copied to clipboard

A simple library to facilitate inversion of control in dart.

Dartioc #

A simple library to facilitate inversion of control in dart. Supports registering multiple container instances that hold bindings to dependencies. Bindings can be declared as singletons.

You can find the package at: https://pub.dev/packages/dart_inversion_of_control

Installing #

Add this to your package's pubspec.yaml file:

dependencies:
  dart_inversion_of_control: ^1.0.0

You can install packages from the command line:

dart pub get

Usage #

A simple usage example:

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(); // 20
}

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
110
pub points
0%
popularity

Publisher

apolexian.xyz

A simple library to facilitate inversion of control in dart.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

More

Packages that depend on dart_inversion_of_control