posts - 176, comments - 240, trackbacks - 0, articles - 7

[导入]解耦只是第一步

Posted on 2005-11-14 15:37 canonical 阅读(450) 评论(1)  编辑  收藏 所属分类: 设计理论
     在软件开发中,很重要的概念就是解耦(decouple),其更加数学化的表述是正交分解。但是按照级列设计理论,元素完全独立的一阶系统只是复杂性最低的模型,或者说,当我们在信息不足的情况下识别出系统中最主要的几个实体之后,对它们的最自然的假设就是互相独立。随着认识的深入,需要逐步补充元素之间的相互作用方式。这就如同Taylor级数展开,任何解析函数都可以展开为Taylor级数,而在物理世界中,一般前几项近似就足够了,因而才造就了如此多的线性定理。在软件开发中,演化(evolution)逐渐成为一个重要的概念,我们也开始关心起系统设计长期的适应性,特别是随着系统的发展,我们认识的深入,如何才能逐步引入新的结构而不破坏原先的整体架构。即我们需要能够控制微扰(perturbation)下原有系统结构的稳定性。但是在目前的软件世界中,连构造基本的结构都困难重重,更别说对结构稳定性的研究了。不过这是一个循序渐进的过程,迟早它会被提上议事日程。
    在分解过程中,一个基本的问题是对象之间确实存在着相互作用,并不是无关的。此时常用的手法是抽提出公共接口,即对象不再两两依赖而是共同依赖于某种公共知识。
          objectA <--> objectB    ==>  objectA <--> commonInterface <--> objectB
    这就如同物理中场方程的处理方式,粒子不再是两两发生作用而是独立的与外部平均场发生作用,而粒子之间认为是独立的。

Feedback

# re: [导入]解耦只是第一步  回复  更多评论   

2006-12-04 16:53 by javabeginer
楼主好像是个数学家,又好像是个物理学家!崇拜不已!~

只有注册用户登录后才能发表评论。


网站导航: