面向向过程、面向对象、面向组件、面向服务都是一步步解耦的过程,但耦合虽然糟糕,但它却不可避免。
一个绝对解耦的应用程序则毫无用处,因为它不均有任何价值。开发者只能通过耦合其他内容,才能为系统添加职责。编写代码的行为就是将两个内容关联起来。真正的问题是耦合的范围究竟有多宽。我相信世界上只有才在两种类型的耦合。
* 好的耦合仅限于业务层的耦合。开发者通过实现系统用例活特性,将软件的功能结合起来,完成对职责的添加。
* 坏的耦合则将所有的内容都集成在一起。
http://www.v2ex.com/new/programmer