读《代码大全》笔记 -- 保持松散耦合
在上学的时候就听老师说,写程序要做到低耦合。这话是牢牢的记在心里了(我还算是个乖学生)。可是在具体的编程过程中有犯糗了。犯糗原因就是对于常见耦合分辨不清、不知道在我的应用中那些耦合可以接受、那些耦合在特定场合可以接受、那些耦合要尽量避免、最重要的就是不同的耦合在代码中如何表现会有如何的影响。
还好这些问题近期在一本叫《代码大全》的书里面找到了(插一句,如果你还没有听说过这本书,赶紧,一定要赶紧打开Google,去Google一下)。
书中提到(中文版 p101)了常见的耦合的种类有如下几种:
l 简单数据参数耦合
l 简单对象耦合
l 对象参数耦合
l 语义上的耦合
对于简单数据参数耦合比对象参数耦合更有灵活性书中在耦合标准-灵活性(p100)中进行了描述。并得出对象参数耦合要比简单数据参数耦合的耦合程度要高。
但是在使用的过程中发现很多场合如果使用“简单数据参数”的话,函数的参赛数列表会很长。这个声明的时候倒是没什么,但是在调用的时候就有可能写错参数的个数(这个还好 ide会告诉我们),参数写的顺序不正确(这个就比较郁闷了,容易出bug而且还不容易找)。
我想如果能用“简单数据参数”就尽量使用,在不同的场合考虑使用“对象参数”。为了这个问题我曾经和我的同事狂吵过。所以印象很深。
其实最要命的最难处理的是那些“语义上的耦合”。别人我不知道。看完了书中的定义,在回想自己以前写过的代码。很多都犯了“语义上的耦合”,并且给项目带来了很多不便。丢人啊。