It lets you specify a set of subsystems that all provide the same interface and so can be viewed as a collection.
ISystemDefinition book = new SystemWiring();
book.HasCollection(Page1, Page2, Page2).Provides
Here Page1, Page2, Page3 are all of type
ISubsystemBuilder, which each define the wiring of a specific
You can only expose something from one of these subsystems if all subsystems implement it. This has the side-effect of enforcing Liskov's Substitution Principle.
At first this feels limiting, but it is leading us to better designs.
Post a Comment