论坛首页 Java企业应用论坛

耦合还是解耦合?

浏览 8078 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-26  
我们的许多设计思想中很多地方都体现了解耦合的思想,这是应对易于变化的一种很好的解决手段,而在这些手段中最重要的解决方法就是添加中间层,所谓添加中间层 比如我们常见的面向接口编程,其实就是添加了一个中间的层次,屏蔽掉了一些变化,还有就是我们常用的设计模式,什么代理啊,faceda等等,都是采用了这样的一种思想。

但是在设计过程中我们要不要对全部的东西都进行解耦呢?

我觉得这需要分情况来看:

如果你需要编写框架之类的应用,那么这个时候进行解耦是有必要的,原因有两个:

1、技术方面的:框架需要进行不断的更新,可能在很多时候原来设计的一些接口或者类就需要进行名称的改变,虽然这样不好,接口按道理来说是一般不应该发生变化了,但是谁一开始也不可能把接口设计的那么完美,改变一下也是可以原谅的。

2、推广方面的:现在的框架非常多,竞争也非常激烈,当然要迎合程序员和老板的口味了,毕竟人们都喜欢比较灵活的东西,呵呵

我认为Spring就是一个非常聪明的框架,他不去要求程序员必须去做什么,而是提供多种选择,将实现方式的选择权交给程序员去做决定,其实这也就无形中把别人对其的议论给化解了,不会被人说成是强迫别人如何做的霸道框架,这一点是做的非常聪明的,再加上对现有其他流行框架的整合,所以能够披荆斩棘,迅速红遍大江南北!

而说回来,框架为我们提供的这些方式能起到多大的作用呢?

能够为我们以后的修改带来多大的便利(如果我们使用别的框架了)?

我没有看到太多的便利之处,如果抛弃了这些框架,我们还是需要对许多的部分进行更改,工作量的减少程度并不明显。

现在ROR的流行也证明了这一点,有时候在框架方面太灵活也不见得太好,CoC有时候就不错。

所以说在设计的时候把握一个度是很难的事情,很多时候我们都陷入了过度设计的怪圈,时间花的不少,成效不大:(

很多地方说的不一定正确,请大家批评~~
   发表时间:2007-07-27  
过度设计是因为假想了可能不需要的需求造成的,开发框架的形成也应该是迭代的、重构的。
0 请登录后投票
   发表时间:2007-07-27  
解耦最大用处在于方便进行模块测试。
0 请登录后投票
   发表时间:2007-07-27  
不是很同意LS的观点..解耦最大用处应该是能够提高代码复用性..进而提高开发速度. 到后面项目运行的时候也能够可以比较轻松地替换新技术..
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics