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 IPage
.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.
No comments:
Post a Comment