
234
|
第七章
整團式設計通常著重在緊密耦合程式碼與系統其他部分有許多耦合的典型單元,試著去
改變高度耦合的程式碼是非常令人沮喪的──通常是耦合導致散彈式修改和很多其他的
反模式,是那些(通常沒被記載)在單元之中的耦合導致會產出錯誤的重工。
就像程式碼能被耦合,也可以被解除耦合(Decoupling),破壞單元之間的耦合度(或
者最好是一開始從來沒有增加過這些耦合)。
程式碼異味和重構可以幫助你製造出低耦合度的程式碼,跳回之前提過的蜂窩程式碼
重構的例子,當我們從一塊 C# 程式碼中選取出 2 個函式,使蜜蜂在野外和蜂窩之間移
動,我們可以看到這 2 個函式可能會被另一部分的基礎程式拒絕,這樣的基礎程式也需
要用同樣的方式移動蜜蜂,但是要是那些函式都是需要被廣泛初始化的巨大單元的一部
分呢?
如果一個開發人員擁有好的習慣,當他嘗試要重新使用那些簡單的函式時,他會聞到未
完成的(Half-Baked)程式碼的異味,並且重構以便移除額外的初始化,現在可以在基礎
程式的兩個不同部分中使用,而且並不需要「了解」如何被呼叫,因為是被解除耦合的
程式碼所呼叫,如果需要被第 3 部分的基礎程式呼叫,將會從原本的部分被解除耦合。
當系統是被小型、獨立單元所組成時,是最容易維護的:每個程式碼都和其他任何程式
碼盡可能地解除耦合(可以是個驚人的數量),所以附屬關係在他們之間是很少見的,
這是使建構可以被改動的系統,卻又不用大量地重工的最主要關鍵,如果你的設計是高
度解除耦合的,那麼你將會很少發現執行了散彈式修改,或是為了一個需求變更改動系 ...