====== Isn't DCI just another software design pattern? ====== As you may have guessed, no. :-) ===== Organization ===== > The difference between DCI and traditional object orientation is that the latter organizes concepts at the extremes either of a rather free-form network structure or of a single, punitive hierarchy of forms. The DCI paradigm strives to express a network model rather than a hierarchy, but provides disciplines for intentionality of form rather than leaving it to emergence.((http://fulloo.info/Documents/CoplienReenskaugASA2012.pdf)) More information about the network model differences [[what_is_the_advantage_of_distributing_the_interaction_algorithm_in_the_rolemethods_as_suggested_by_dci_instead_of_centralizing_it_in_a_context_method|in this FAQ entry]] ===== Execution model ===== DCI has a different execution model than the traditional OO model. The RoleMethods in a Context are only available to a Role-playing object during the Context execution, nowhere else. > The DCI Contexts live on a stack and their Roles can carry Role-specific behavior (RoleMethods)((http://folk.uio.no/trygver/2012/DCIExecutionModel-2.1.pdf))