耦合


1.1.1. 低耦合

耦合指的兩個系統(模塊)聯系緊密。共7種,除掉無直接耦合和高級語言不存在的內容耦合,共5種。耦合從低到高,分別是:數據耦合、標記耦合、控制耦合、外部耦合、公共耦合。

1. 數據耦合兩例

JiSuan(5, 3);

 

CGouMaiXinXi gouMai = new CGouMaiXinXi();

//...

JiSuan(gouMai);

2. 標記耦合六例

參數是json字符串,如:{"價格":10,"數量":1}

參數為文件名,文件格式是調用方和被調用方約定的。

C#帶參數的線程函數,函數的入口參數為object類型;C++的線程入口函數,參數為LPVOID

調用Com

halconHTuple

_variant_t和VARIANT

3. 控制耦合

移動(方向)

4. 外部耦合

共用一個靜態成員變量或全局變量。

5. 公共耦合

訪問同一片內存區域。

6. 內容耦合4

Window2000Window98C語言可以直接操作顯示內存指針,來改變控制台內容。至少有10%的幾率會讓操作系統崩潰。

hook技術用於監控軟件。

破解軟件、逆向工程。

游戲修改,外掛。

7. 各種耦合優缺點

耦合名稱

優缺點

數據耦合

如果結構發生變化,編譯的時候,就能發現錯誤。

標記耦合

如果結構發生變化,運行時才能發現錯誤。

控制耦合

控制耦合,大幅降低可測試性。

外部耦合

不知道會有多少個模塊訪問,所以確定性弱。相對公共耦合,可以通過訪問權限(publicprivate等)減少風險

公共耦合

不知道會有多少個模塊訪問,確定性弱。

 

公共耦合與標記耦合的區別:后者只會在參數、返回值使用共同資源。

耦合只是一方面,具體情況具體分析。比如:標記耦合大大增加了靈活性和互操作性,所以常常用於系統間通信。外部耦合,大大降低了代碼量,非常適合於一些質量要求不高的小工具。公共耦合適合的性能要求高的模塊,即使是性能要求高的系統,絕大部分模塊的性能要求並不高。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM