C++API設計

雖然在平常的軟件開發中,比較少開發API。但是應爲確實做過一個有關API的項目,所以遇到相關的書籍也就大概過了一遍。

其實平常的軟件開發中,軟件內部的接口也應該用到API設計的一些典型方法與建議。

書中提到的API應該儘量隱藏實現的細節,看到這個就想到,學習類的時候。類的主要功能是封裝,封裝就是要避免暴漏細節。但是有時候,爲了使用模板,確實會放開一些細節。

另外很重要的一點就是不要將變量設置爲公有,省不了多長時間。而且可以將get/set方法設置爲內聯方法。但是對於項目中經常遇到的只有變量的結構體,我覺得還真沒有設置的必要。就算有必要,我也沒有那個能力以一己之力改變。關鍵是類的變量,儘量不要設置爲公有。這也是封裝的一種體現。

類應該定義做什麼而不是如何做。這一點時說,不要把不應公開的方法公開。這個可以作爲設計類方法的原則。

不要返回數據的非const引用。其實返回值的話,如果不是構造太複雜,還是直接傳值比較好。倒是傳入的值應該都是常量引用比較好。對於STL容器,const引用限制了讀取方式。比如map[1]這種方式就不能用了。

Pimp這種技巧,API中可以用。實際中,看情況吧,用的比較少。

對於可加可不加的接口,那就不要添加。

使用一致的命名規則。風格其實還是比較混亂的。

用例從用戶角度描述用戶需求,不應該定義設計。感覺應該對輸入輸出的範圍定義下來,纔可以指導測試。

其他的,看不下去了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章