将数据,上下文和交互(DCI)推广到组织的最佳描述是什么?
它是由MVC模式的创建者Trygve Reenskaug创建的.
它真的是MVC的继承者还是其他模式?它的优点和缺点是什么?
Trygve在https://vimeo.com/8235394上介绍了DCI
创建DCI是为了解决面向对象的问题:审查OO代码太难了.
OO中一个用例的代码通常分布在许多类之间.要了解代码的工作原理,还必须了解运行时对象之间的关系.这些关系不是在代码中设置的,它们取决于具体情况.
DCI建议的是,给定用例的代码从类中分离出来并放入称为上下文的不同工件中.不同类的对象可以在此上下文中建立关系,并参与具有不同角色的交互.
DCI的重点是让OO代码更具可读性!
这就是我如何推销它.
我得到的印象是它不是MVC 的继承者,而是一个补充,例如关于DCI的artima文章中的图5 都有.我认为它应该有助于使模型和控制器之间的区别更加清晰,或者可能在控制器的不同部分或模型的不同部分之间.
基本思想似乎是为数据类的特定操作拆分逻辑,并将其移动到traits/mixins/whatever,每个(用户)操作一个.你将拥有许多小块代码,而不是几个大块.此外,听起来添加新的mixin应该比向基类添加功能更"好".个别行动的代码可能(我认为?)更加分散,但不同行动的代码应该更明确,更明显地分开.
一个好问题和一个经常出现的问题.简短的回答是,它是基于Kay,Dahl和其他人的OO创始理念而自行设定的范例.它是由Trygve Reenskaug创建的,因为你注意到了几个目标.其中一个目标是使IO操作成为该计划的一等公民.(不是磁盘操作中的IO,而是两个不同对象之间的所有通信).DCI的另一个重要目标是将系统所做的事情(功能/行为)与系统(数据)分开