====== Frequently Asked Questions ====== - [[What is DCI?|What is DCI?]] - [[How does DCI relate to MVC?|How does DCI relate to MVC?]] - [[What is the relationship between classes, objects, Roles, and Contexts?|What is the relationship between classes, objects, Roles, and Contexts?]] - [[What are the typical rules I need to pay attention to when writing DCI code?|What are the typical rules I need to pay attention to when writing DCI code?]] - [[Why isn't it DCI if you use a wrapper object to represent the Role?|Why isn't it DCI if you use a wrapper object to represent the Role?]] - [[Why can't I reuse a Role across multiple contexts?|Why can't I reuse a Role across multiple Contexts?]] - [[Can a Role be played by several different objects in a given Context instantiation?|Can a Role be played by several different objects in a given Context instantiation?]] - [[Can I rebind roles to objects multiple times over the lifetime of a Context object?| Can I rebind roles to objects multiple times over the lifetime of a Context object?]] - [[Can I use DCI in Java?|Can I use DCI in Java?]] - [[What is the best DCI language?|What is the best DCI language?]] - [[Can I use DCI in a system with parallelism or asynchrony?|Can I use DCI in a system with parallelism or asynchrony?]] - [[How do I code recursive system operations in DCI?|How do I code recursive system operations in DCI?]] - [[Why must roles be stateless?|Why must roles be stateless? i.e. why are they allowed to contain only methods, and not their own data properties?]] - [[What is the advantage of distributing the interaction algorithm in the RoleMethods, as suggested by DCI, instead of centralizing it in a Context method?|What is the advantage of distributing the interaction algorithm in the RoleMethods, as suggested by DCI, instead of centralizing it in a Context method?]] - [[When using DCI with MVC, is it ok to let Views and Controllers play Roles in a Context?|When using DCI with MVC, is it ok to let Views and Controllers play Roles in a Context?]] - [[Is there a glossary for the DCI terminology?|Is there a glossary for the DCI terminology?]] - [[Isn't DCI just another software design pattern?|Isn't DCI just another software design pattern?]] - [[Can Roles be unbound in a Context?|Can Roles be unbound in a Context?]] - [[Is there any situation where DCI isn't appropriate to use?|Is there any situation where DCI isn't appropriate to use?]] - [[I have a Use Case written down, and now I'd like to use DCI for implementing it in code. Where do I start?|I have a Use Case written down, and now I'd like to use DCI for implementing it in code. Where do I start?]] - [[I found a library that claims to do DCI, how can I know that it does?|I found a library that claims to do DCI, how can I know that it does?]] - [[If a DCI Context should map to a User mental model, does it mean that DCI cannot be used for programming at a lower level than what interacts with a User?|If a DCI Context should map to a User mental model, does it mean that DCI cannot be used for programming at a lower level than what interacts with a User?]] - [[Can a Context have state?|Can a Context have state?]] - [[I'm missing a DCI implementation for my favorite language! What to do?|I'm missing a DCI implementation for my favorite language! What to do?]] - [[It seems like many implementations are using Abstract Syntax Tree rewriting to enable DCI. How does it work?|It seems like many implementations are using Abstract Syntax Tree rewriting to enable DCI. How does it work?]] - [[Should the actors for a Use Case be represented as roles in the DCI Context for that Use Case?|Should the actors for a Use Case be represented as roles in the DCI Context for that Use Case?]] - [[What should I do if different users have different mental models|What should I do if different users have different mental models, or one of the stakeholders has a different mental model than an end user?]] - //Another FAQ topic//