聯軸器概念
- 耦合性:表示一個模組了解和依賴其他模組的程度。
- 低耦合:一個模組的變更對其他模組的影響較小。
- 高耦合:一個模組中的變更可能會影響其他幾個模組。
凝聚力概念
- 內聚性:表示模組職責的分組程度。
- 高內聚:模組具有相關的職責,並且專注於執行單一任務。
- 低內聚力:職責相關性較低。
溝通方式
訊息通訊
- 非同步通訊。
- 模組發送和接收訊息。
- 透過介面定義訊息契約。
- 促進模組之間的解耦。
- 模組透過訊息匯流排進行通訊
- 工具:RabbitMQ、Kafka等
傳統傳播
- 模組之間呼叫函數。
- 在套件之間使用物件、結構、特徵。
- 一個模組呼叫另一個模組。
- 命名空間、包、模組的使用。
觀察結果
- 很難保證要完全解耦
- 模組之間總是存在一些依賴關係。
- 即使使用合約、介面和訊息傳遞,也會存在一定程度的依賴性。
- 一個模組與另一個模組之間存在依賴關係是正常的。
原始碼:
- https://github.com/ortizdavid/golang-modular-software
以上是耦合與內聚的詳細內容。更多資訊請關注PHP中文網其他相關文章!