Monday, August 22, 2011

DCI in short - Can you fly that helicopter?

Trinity is the object, Matrix is the Context, HelicopterPilot is the role (injected runtime in Matrix).

It's obviously a simplification but overall I think this metaphor expresses the idea of DCI very well. Trinity represents the D (Data), Matrix represents the C (Context) and HelicopterPilot role along with the Helicopter itself (and other objects) represent the I (Interaction).

This example is good as it shows how your software can evolve. Your objects don't need to know upfront that they will play some roles, it's all runtime (as with Trinity and the helicopter).

Can you fly that helicopter?


Paweł Pacana said...

coolness factor increased ;)

Bartosz Blimke said...

If DCI is about representing user's mental model then there is another role, meta-role: LoadNewRoleRole

Andrzej Krzywda said...

Hey Bartek, interesting idea.

We go a litlle bit meta here :)

My assumption was that we're modeling Matrix, so the role loader is at the level of software. With this assumption the role loader is the context (use-case).

However, if we model the whole world with the matrix world included, then yes, the RoleLoaderRole sounds good to me.