網路社群中很多人也積極分享著新學到的知識,
剛好看到一篇
筆記-什麼是時序耦合(Temporal Coupling)?
直接引用作者的解釋:
"時序耦合指的是這個 Class 中含有的 Functions 有隱性的「先後順序」的耦合性,這是一個「Design Smell」"
對於時序耦合這個名詞我很陌生,
卻對於內容有一點熟悉的連結,
似乎在哪邊看過?
答案就是在Clean Code裡面看過類似的這個觀念,,
回家翻了一下,在第336頁中有短暫提到,
開發程式的時候,難免會有同一件事情要經過多個步驟(function)去處理的過程,
以下舉例:
今天有三個function負責
點菜();
製餐();
上菜();
如果上述三個function順序錯誤,就會造成執行上的錯誤。
例如:
上菜();
點菜();
製餐();
哪有人還沒點菜就先上菜的。
為了開發出來的code不要讓使用者犯下這種錯誤,
你可以透過function產生的參數與function需要輸入的參數,
來避免這樣的時序耦合,
例如:
菜單 = 點菜();
熱騰騰的餐點 = 製餐( 菜單 );
上菜( 熱騰騰的餐點 );
這樣子使用者在使用這三個function的時候,
就一定得依照各個function所需要的參數來進行呼叫,
間接地建立了使用順序,
能夠避免時序錯亂的問題。
加一下超連結
回覆刪除已修正
刪除