需求分析与代码设计统一新方法(摘自:Jdon创始人彭晨阳)

  DCI是一种构建面向对象应用的新途径。对象有数据属性和方法行为,以前
我们是封装在一个对象中,因为这个对象在某个需求用例场景中被使用时需要这
些属性和方法行为。注意,这里面有一个关键点,就是对象被使用。以前我们进
行面向对象设计,是遵循一种静态原则,因为这个对象被使用需要这些属性和行
为,所以,我们在编码时将这些属性和行为写在这个类中。

  这个逻辑过程是不对的,那是因为过去程序语言平台落后,导致了我们这种
思维逻辑。现在的思维逻辑是:对象被使用时需要的属性和行为不一定要在编写
代码时写入,而是在运行时再注入或Mixin混合进去。这就是DCI架构的本质。

  正如Rebecca Wirfs-Brock在其著作《对象设计:角色、责任和协作》中所
提到的,MVC的控制器有很多缺点:控制逻辑会变得超级复杂,很多人在Struts
的action控制器中写业务代码,所有的操作都在action中,有的action都几乎上
千行了。控制器做很多事情,就意味着领域对象做很少事情,控制器最后不是只
会做什么、决定战略性的事情,它也和怎么做、如何实现等战术问题耦合。
直接通过场景和视图绑定,比MVC模式中的Control要自然得多,这种角度
更符合OO。MVC模式其实是一个结构性模式,因此不适合互动行为能力很强的
应用,比如Web 2.0社会媒体或游戏等。所以,可以认为DCI架构颠覆了MVC模
式。用DCI替代MVC,用场景替代控制器应该是大势所趋。

  DCI的思想和Peter Coad的四色原型很相似。四色原型是需求层面,而DCI
架构是技术实现层面。这两者类似,说明我们终于找到一种方法实现需求分析和
设计代码的统一了。

原文地址:https://www.cnblogs.com/lihaibo/p/2163986.html