关于解耦/松散耦合,你可能忽略的一些视角

        首先要强调一点:写这篇帖子的目的不是为了反对松散耦合。关于松散耦合的优点可谓俯拾皆是,而本文的目的只是从一个特殊的角度来对松散耦合进行思考。或许有点像《孔乙己》中茴香豆茴字的几种写法一样,但我本心却并无哗众取宠之意,不对之处请大家批评指正。
        首先,相互耦合的事物之间,其耦合总量不会随着“解耦/松散耦合”设计而减少的。关于这一点,我不想费力的去证明,一个具有普适性的定理就可以说明了,这个定理就是我们上学时非常熟悉的“能量守恒定律”。
        此外,由于围绕着“解耦/松散耦合”而设计出的一系列实现,反而会增加耦合总量。这个可以用力学中的“合力”来佐证。
        哲学中有一个很有意思的说法“任何事物之间都是有联系的”,如果这句话是成立的,那么无论我们如何设计,都不可能做到真正的“解耦”,只能达到“无限松散”的程度。
        那么“解耦/松散耦合”的优点到底是什么呢?网上一查,有很多,但绝大多数都是人云亦云,甚至狂教徒般的鼓吹。我想用一个类比来诠释一下“解耦/松散耦合”的优点:在古代,一小瓶“鹤顶红”是“谁喝谁死”般的存在(这里就不较真了,也没有和大家打嘴仗的意思),那么如果把一瓶“鹤顶红”倒入一大缸水中,拿原来的瓶子,一瓶瓶的分次喝掉大缸中的毒水,怕是闹个肚子就完事了。所以,从这个角度来讲,“解耦/松散耦合”不是什么灵丹妙药,只是稀释毒药的水,仅此而已。

        注:这是我在CSDN发的一个帖子的原话,自我觉得有些道理,就又复制到了我的博客中。

你可能感兴趣的:(设计思想)