DCI is an architectural pattern that aims to cleanly separate code for system behavior from code representing the domain model. It focuses on modeling interactions rather than classes. In DCI:
- Data represents the domain model and is stable over time.
- Context enacts a specific use case by mixing roles into participating objects.
- Interaction defines methods that carry out the use case by being mixed into role modules.
- A controller starts a use case by instantiating a context, which finds objects and mixes in roles to execute the interaction methods.
DCI aims to give interactions first-class status in the code and provide an object-oriented view of use cases that is closer to how people think about
Related topics: