factory_castle 1.0.0 copy "factory_castle: ^1.0.0" to clipboard
factory_castle: ^1.0.0 copied to clipboard

outdated

An IoC container for Dart inspired by Castle Windsor

factory_castle #

An IoC container for Dart inspired by Castle Windsor.

Sample code involving component registration, dependency injection and service locator style resolution:

final container = FactoryContainer();

container.register(Component.For<ILogger>((c) => Logger('Demo')));
container.register(Component.For((c) => DataRepository(c.resolve())));
container.register(Component.For((c) => ListViewModel(c.resolve(), c.resolve())));

final viewModel = container.resolve<ListViewModel>();

viewModel.update();

As name suggests components are registered as factory deleagates since reflection usage in Dart isn't something you can do easily and in performant way. Each factory delegate recieves FactoryContainer as a parameter so that dependencies can be injected into constructor via resolve(). Dart is good at type inference so you don't need to explicitly specify dependency types. Types are taken from the called constructor parameters.

See the example:

container.register(Component.For((c) => ListViewModel(c.resolve(), c.resolve())));
2
likes
0
pub points
0%
popularity

Publisher

verified publishernuc134r.io

An IoC container for Dart inspired by Castle Windsor

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

More

Packages that depend on factory_castle