一分鐘瞭解“好”介面的設計與實現

NO IMAGE

一、好介面的特性

  • 易讀

  • 易用,難於誤用

  • 功能獨立

  • 容易擴充套件

二、好介面設計的基本原則

  • 只做並做好一件事

      函式名自解釋

      不恰當的函式名,往往是不恰當設計的徵兆

  • 如果沒做到上一點,就將函式分解

      只增加,永遠不要刪除函式與介面(你永遠不知道這個介面被誰在使用)

  • 實現永遠不能影響介面

      舉例:不能假定函式呼叫者只能使用hash

      不能對外暴露實現細節

  • 最小化訪問

      儘量使用私有化成員

      注意資訊隱藏

  • 注意文件與註釋

      介面不是隻寫給自己(即使只給自己,也應該有說明)

三、好介面實現的基本原則

  • 不要到處拷貝程式碼

  • 原子性儘量在一個介面內保證

  • Fail-Fast原則

      出錯儘量早點返回,交給上層處理,不要勉強搶救

  • 避免資料直接訪問,而是提供訪問方法

  • 注意引數與返回值型別

      儘量明確型別

      能不用string儘量不用

      使用float的地方儘量用double,64bit

  • 引數個數不宜太多

      如果過多,就要考慮介面的合理性了

你見過沒有註釋的介面麼?

你見過2000行的介面麼?

你見過20個引數的介面麼?

你見過什麼更奇葩的介面?