深入C++中API的問題詳解_C語言

前言:本文書寫的格式與其它不相同。本文題目說是關(guān)于C++ API的思考,其實(shí)也不僅僅是C++,對于其它語言同樣適用。

創(chuàng)新互聯(lián)是專業(yè)的湄潭網(wǎng)站建設(shè)公司,湄潭接單;提供成都做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行湄潭網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

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

為什么要開發(fā)API?
我們希望將大塊的構(gòu)建模塊“無緒”地集合成應(yīng)用程序,一些構(gòu)建模塊包含共享庫、框架、預(yù)先定義好的程序架構(gòu),以及這些內(nèi)容的組合。

如何檢查API的質(zhì)量?
1、可理解性
2、一致性
3、可見性
4、簡單的任務(wù)應(yīng)該有簡單的方案
5、保護(hù)投資

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

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

API設(shè)計(jì)技巧二:
使用工廠方法而不是直接使用構(gòu)造函數(shù)來創(chuàng)建一個(gè)對象。

使用工廠方法創(chuàng)建對象的好處:
1、工廠方法的返回值并不一定是聲明類型的實(shí)例,它可以是它子類的實(shí)例。使用工廠方法可以更好的體現(xiàn)面向?qū)ο笳Z言中多態(tài)的優(yōu)勢,代碼也會(huì)顯得更加簡潔。
2、每次返回的對象并不一定都是新創(chuàng)建的對象,完全可以將其緩存。相比之下,每次調(diào)用構(gòu)造函數(shù)都會(huì)創(chuàng)建一個(gè)實(shí)例,而一個(gè)工廠方法可以緩存以前創(chuàng)建的對象,并重用他們,從而節(jié)省了內(nèi)存。
3、對同步控制,在工廠方法中可以將創(chuàng)建對象前后的相應(yīng)代碼進(jìn)行統(tǒng)一處理。構(gòu)造函數(shù)對這一種情況就無能為力。

API設(shè)計(jì)技巧三:
讓所有的內(nèi)容不可改,如果不考慮讓其擁有子類,就應(yīng)該讓這個(gè)類不能被繼承。
強(qiáng)烈推薦:不公開構(gòu)造函數(shù),轉(zhuǎn)而提供工廠方法

API設(shè)計(jì)技巧四:
避免濫用set方法,在不部分情況下set方法是多余的。
建議:小心API中的每一個(gè)不必要的set方法

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

API設(shè)計(jì)技巧六:
避免暴露深層次繼承。一旦發(fā)現(xiàn)繼承體系超過兩層時(shí),一定要打住,并多多思考一下,要弄清楚:“我到底設(shè)計(jì)API還是在復(fù)用代碼?”如果答案是后者,那么重新審視,并嚴(yán)格設(shè)計(jì)這個(gè)API,或者做好子類化的準(zhǔn)備。
以上是云棲社區(qū)小編為您精心準(zhǔn)備的的內(nèi)容,在云棲社區(qū)的博客、問答、公眾號、人物、課程等欄目也有的相關(guān)內(nèi)容,歡迎繼續(xù)使用右上角搜索按鈕進(jìn)行搜索c語言 api 約瑟夫問題c語言詳解、vc 深入詳解 孫鑫 pdf、servlet jsp深入詳解、vc 深入詳解、深入理解java泛型詳解,以便于您獲取更多的相關(guān)知識。

網(wǎng)頁標(biāo)題:深入C++中API的問題詳解_C語言
本文網(wǎng)址:http://bm7419.com/article48/gigpep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、關(guān)鍵詞優(yōu)化、軟件開發(fā)、外貿(mào)建站、電子商務(wù)、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營