程式衝突及其解決

老司機的詩和遠方發表於2020-04-06

描述

對於兩部分軟體,如果它們不能在同一個程式裡很容易地用在一起,那麼我們就稱這兩部分軟體是衝突的。可重用程式碼應該儘可能地避免這種衝突。程式庫使用的名字可能會和其他程式庫的名字發生衝突,這些衝突包括全域性名稱,巨集名稱和環境名稱相互之間的衝突。常用的解決方法是命名約定和名稱空間結構

命名約定

  1. 提高名稱的唯一性,每個具有外部連結的全域性名稱都應該加上字首,實際中,很常用的是加一個字母或者兩個字母。或者可以加上程式庫的名稱,甚至開發這個程式庫的公司名稱(增強唯一性)。
  2. 私有保護,減少由於多繼承造成的同名函式呼叫的多意性。
  3. 為了減少需要加上字首的全域性名稱數量,程式庫應該使用名字空間結構,不過程式設計師使用的話就需要加名稱空間的結構或者使用using namespace xx(名稱空間);
  4. 巨集名稱衝突也是比較常見,巨集名稱衝突並不是僅僅只是另外的巨集名稱衝突,其他函式命名也是會造成衝突。因此應儘可能地少定義公共巨集(公共檔案定義的巨集);對那些不能去掉的公共巨集,使用命名約定(加字首)。
  5. 環境名稱,主要是檔案的名稱衝突,將相同的名稱衝突檔案放在不同的目錄,然後包含進來。
  6. 6.

相關文章