Appearance
耦合性原則
元件是程式設計中的基本單位,用來封裝資料和功能、提供清晰的介面來與其他元件互動。
理想中的元件應該具備高內聚和低耦合的特性,這樣的程式具有高度可讀性、可維護性和可重用性:
- 高內聚 : 指一個元件的
內部元素
之間有著強烈的相關性
,而與外部元素
無關或很少相關
。這意味著一個元件應該只負責一個單一的功能或目的,並且把這個功能或目的分解成細粒度的子任務。例如,一個排序元件應該只負責對一個陣列進行排序,而不應該涉及其他的邏輯,如讀取或輸出資料。 - 低耦合 : 指一個
元件與其他元件之間
有著很少或沒有依賴關係
,也就是說,一個元件可以獨立地運作,而不受其他元件的影響。所以元件應該盡量減少對其他元件的引用或呼叫,並且只通過明確定義的介面來交換資訊。低耦合可以幫助我們提高程式的模組化和彈性,並且方便我們測試和修改程式。
耦合姓三大原則
- ADP , 無環依賴原則
- SDP , 穩定依賴原則
- SAP , 穩定抽象原則
ADP,無環依賴原則
是指在一個模組的依賴關係圖中,不應該出現循環依賴的情況。循環依賴會導致模組之間的相互影響,增加了複雜度和測試難度,降低了可讀性和可重用性。要避免循環依賴,我們可以使用抽象介面、反轉控制、設計模式等技巧。
SDP,穩定依賴原則
是指在一個模組的依賴關係圖中,應該讓不穩定的模組依賴於穩定的模組,而不是反過來。穩定性是指一個模組被其他模組依賴的程度,越高表示越不容易被修改。如果一個穩定的模組依賴於一個不穩定的模組,那麼當不穩定的模組發生變化時,穩定的模組也需要跟著改變,這會造成連鎖反應和代碼腐敗。要遵守穩定依賴原則,我們可以使用抽象介面、開放封閉原則、單一職責原則等技巧。
SAP,穩定抽象原則
是指在一個模組的依賴關係圖中,應該讓一個模組的抽象程度與其穩定程度相匹配。抽象程度是指一個模組提供的功能有多廣泛和多變化,越高表示越容易被重用和擴展。如果一個抽象程度高的模組穩定性低,那麼它可能會被頻繁地修改,導致其抽象性失去意義。如果一個抽象程度低的模組穩定性高,那麼它可能會限制其他模組的發展,導致其僵化性增加。要遵守穩定抽象原則,我們可以使用抽象工廠、策略模式、橋接模式等技巧。
在 vue 中,我們可以通過以下幾種方式避免 ADP(Acyclic Dependencies Principle)形成,即避免循環依賴的情況:
- 使用 props 和 emit 來實現父子組件之間的單向數據流,避免子組件直接修改父組件的數據。
- 使用 provide 和 inject 來實現祖先和後代組件之間的跨層通信,避免多層嵌套的 props 傳遞。
- 使用事件總線或自定義事件來實現兄弟或任意組件之間的非父子通信,避免直接調用對方的方法或屬性。
- 使用插槽或高階組件來實現組件之間的內容分發或邏輯重用,避免重複定義相同的模板或功能。
Reference
- Clean Architecture 整潔的軟體設計與架構篇
- ithome-【元件如何正確使用 ?】元件耦合性三大原則 : ADP、SDP、SAP
- wiki-ADP(Acyclic Dependencies Principle)