Данные, контекст, взаимодействие (DCI) DCI был изобретен профессором Трюгве Реенскаугом для решения конкретной проблемы в коде OO; очень сложно читать код OO для конкретного случая использования, поскольку он часто распространяется на многие разные классы, а поток управления между методами этих классов зависит от того, какие объекты создаются для каких переменных. С DCI Reenskaug предложил новый способ кодирования для прецедентов, где каждый вариант использования реализован как

Данные, контекст, взаимодействие (DCI)

DCI был изобретен профессором Трюгве Реенскаугом для решения конкретной проблемы в коде OO; очень сложно читать код OO для конкретного прецедента, поскольку он часто распространяется на многие разные классы, а поток управления между методами этих классов зависит от того, какие объекты создаются для каких переменных.

С DCI Reenskaug был предложен новый способ кодирования для прецедентов, где каждый вариант использования реализован как Контекст, и каждый участвующий объект имеет роль в этом Контексте.

Методы могут быть записаны для контекста и для ролей. Ролевые методы рассматриваются как методы экземпляра объекта, играющего связанную роль. Метод RoleMethod существует только в контексте контекста. Когда объект больше не играет роли, функции RoleMethod больше не являются частью объекта

Этот подход позволяет организовать код для конкретного случая использования в конструкции контекста и легко читаться и пониматься как полный артефакт.

DCI - это не шаблон, который можно легко реализовать на любом языке OO, это скорее предложение для следующей эволюции юниверса OO. Для большинства языков необходимо добавить новые ключевые слова. Тем не менее, Реенскауг выполнил реализацию DCI в SmallTalk и язык, который Марвин был разработан и реализован при поддержке DCI.

Чтобы узнать больше о сайте сообщества для DCI под названием fullOO