国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

關于C++ API的一些思考

2020-02-24 14:34:22
字體:
來源:轉載
供稿:網友

本文書寫的格式與其它不相同。本文題目說是關于C++ API的一些思考,其實也不僅僅是C++,對于其它語言同樣適用。一起來往下學習吧。

API實際是指Application Programming Interface,應用程序編程接口。對API是一套用來控制Windows的各個部件的外觀和行為的一套預先定義的Windows函數。在C++中我認為:一個API就是一堆類以及類中方法和字段的集合。
并不是所有的簽名都是API的一部分,未公開的部分(private)內容不是API,它不對外承諾兼容性。API廣泛定義:凡是有利于在“無緒”的狀態下把一個大的系統以組件集成的方法拼裝出來的東西都屬于API

為什么要開發API?
我們希望將大塊的構建模塊“無緒”地集合成應用程序,一些構建模塊包含共享庫、框架、預先定義好的程序架構,以及這些內容的組合。

如何檢查API的質量?
1、可理解性
2、一致性
3、可見性
4、簡單的任務應該有簡單的方案
5、保護投資

API設計技巧一:
不要把類中的字段直接對外公布,而應該放置在內部。最好讓外部用戶只能通過set、Get方法來訪問字段,千萬不要將字段直接公布出來。

使用方法訪問字段要好于直接訪問字段。如果你在編寫API的時候遵守這一建議,那么可以在這個API的下一個版本中對方法的具體實現進行很多改動,如添加數據的驗證和校驗、覆蓋一個方法等,還可以做一些大的變化。如果直接使用指端就不能做上述改動。

API設計技巧二:
使用工廠方法而不是直接使用構造函數來創建一個對象。

使用工廠方法創建對象的好處:
1、工廠方法的返回值并不一定是聲明類型的實例,它可以是它子類的實例。使用工廠方法可以更好的體現面向對象語言中多態的優勢,代碼也會顯得更加簡潔。
2、每次返回的對象并不一定都是新創建的對象,完全可以將其緩存。相比之下,每次調用構造函數都會創建一個實例,而一個工廠方法可以緩存以前創建的對象,并重用他們,從而節省了內存。
3、對同步控制,在工廠方法中可以將創建對象前后的相應代碼進行統一處理。構造函數對這一種情況就無能為力。

API設計技巧三:
讓所有的內容不可改,如果不考慮讓其擁有子類,就應該讓這個類不能被繼承。
強烈推薦:不公開構造函數,轉而提供工廠方法
?
API設計技巧四:
避免濫用set方法,在不部分情況下set方法是多余的。
建議:小心API中的每一個不必要的set方法

API設計技巧五:
盡可能通過友元的方式來公開功能。為了讓用戶更加簡單明了地使用好你的API,就不要再你的API中公開太多的方法,不要給用戶犯錯的機會。

API設計技巧六:
避免暴露深層次繼承。一旦發現繼承體系超過兩層時,一定要打住,并多多思考一下,要弄清楚:“我到底設計API還是在復用代碼?”如果答案是后者,那么重新審視,并嚴格設計這個API,或者做好子類化的準備。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上虞市| 广州市| 太湖县| 报价| 江孜县| 濮阳市| 安远县| 丹江口市| 阳原县| 马鞍山市| 吉水县| 五常市| 城固县| 华安县| 中江县| 扶余县| 广安市| 丽江市| 共和县| 洪泽县| 岑巩县| 鹿泉市| 永德县| 太谷县| 泗洪县| 永年县| 崇礼县| 阳东县| 泸溪县| 屏南县| 楚雄市| 鄂伦春自治旗| 仁怀市| 句容市| 新竹县| 苍南县| 滁州市| 固镇县| 三门县| 牙克石市| 海门市|