今天給大家介紹一下Java API的設(shè)計(jì)清單是什么。文章的內(nèi)容小編覺(jué)得不錯(cuò),現(xiàn)在給大家分享一下,覺(jué)得有需要的朋友可以了解一下,希望對(duì)大家有所幫助,下面跟著小編的思路一起來(lái)閱讀吧。
創(chuàng)新互聯(lián)公司專(zhuān)注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)、扎魯特旗網(wǎng)絡(luò)推廣、成都小程序開(kāi)發(fā)、扎魯特旗網(wǎng)絡(luò)營(yíng)銷(xiāo)、扎魯特旗企業(yè)策劃、扎魯特旗品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供扎魯特旗建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:jinyejixie.com
在設(shè)計(jì)Java API的時(shí)候總是有很多不同的規(guī)范和考量。與任何復(fù)雜的事物一樣,這項(xiàng)工作往往就是在考驗(yàn)我們思考的縝密程度。就像飛行員起飛前的檢查清單,這張清單將幫助軟件設(shè)計(jì)者在設(shè)計(jì)Java API的過(guò)程中回憶起那些明確的或者不明確的規(guī)范。
我們還準(zhǔn)備了一些前后比對(duì)的例子來(lái)展示這個(gè)列表如何幫助你理清設(shè)計(jì)需求,找出錯(cuò)誤,識(shí)別糟糕的設(shè)計(jì)實(shí)踐以及如何尋找改進(jìn)的時(shí)機(jī)。
這個(gè)清單使用了如下的語(yǔ)言規(guī)范:
要 - 表示必要的設(shè)計(jì)
建議 - 表示在幾個(gè)最好的設(shè)計(jì)中選擇一個(gè)
考慮 - 表示一個(gè)可能的設(shè)計(jì)上的改進(jìn)
避免 - 表示一個(gè)設(shè)計(jì)上的缺陷
不要 - 表示一個(gè)設(shè)計(jì)上的錯(cuò)誤
1. 包設(shè)計(jì)清單
1.1. 共通
1.1.1. 建議把API和實(shí)現(xiàn)放入不同的包
1.1.2. 建議把API放進(jìn)上層包,而把實(shí)現(xiàn)放進(jìn)下層包
1.1.3. 考慮把一組大型的API分拆進(jìn)不同的包
1.1.4. 考慮把API和實(shí)現(xiàn)打包進(jìn)不同的jar包
1.1.5. 避免API的實(shí)現(xiàn)類(lèi)之間的內(nèi)部依賴(lài)
1.1.6. 避免把API分拆了太細(xì)
1.1.7. 避免把公共實(shí)現(xiàn)類(lèi)放到API的包中
1.1.8. 不要在調(diào)用者和實(shí)現(xiàn)類(lèi)之間建立依賴(lài)
1.1.9. 不要把沒(méi)有關(guān)系的API放進(jìn)同一個(gè)包
1.1.10. 不要把API和SPI(service provider interface)放進(jìn)一個(gè)包(注:兩者不同可以查看這個(gè)頁(yè)面http://stackoverflow.com/questions/2954372/difference-between-spi-and-api )
1.1.11. 不要移動(dòng)或者重命名一個(gè)已經(jīng)發(fā)布的公共API
1.2. 命名
1.2.1. (一級(jí))包名以公司(或者組織)的根命名空間來(lái)命名
1.2.2. 使用一個(gè)穩(wěn)定的產(chǎn)品名稱(chēng)或者一個(gè)產(chǎn)品系列的名稱(chēng)作為包的二級(jí)名稱(chēng)
1.2.3. 使用API名稱(chēng)作為包名的(三級(jí)名稱(chēng))結(jié)尾
1.2.4. 考慮把僅包含實(shí)現(xiàn)的包的名稱(chēng)中包含"internal"這個(gè)詞(注:似乎“impl”更常見(jiàn)一些)
1.2.5. 避免使用組合起來(lái)的名稱(chēng)
1.2.6. 避免包名和包內(nèi)的類(lèi)名使用同樣的名稱(chēng)
1.2.7. 避免在包名稱(chēng)中使用“api”這個(gè)詞
1.2.8. 不要使用營(yíng)銷(xiāo),計(jì)劃,組織單元(部門(mén))和地理名稱(chēng)
1.2.9. 不要在包名中使用大寫(xiě)字母
1.3. 文檔
1.3.1. 為每一個(gè)包提供一個(gè)package.html
1.3.2. 遵循標(biāo)準(zhǔn)的javadoc的規(guī)范
1.3.3. 在API的開(kāi)始處用一句短小的話來(lái)概括(描述)
1.3.4. 提供足夠多的細(xì)節(jié)來(lái)幫助判斷是否需要使用和如何使用該API
1.3.5. 指出該API的入口(主要的類(lèi)或者方法)
1.3.6. 包含覆蓋主要的,基本功能演示的樣例代碼
1.3.7. 包含一個(gè)指向開(kāi)發(fā)者指南的超鏈接
1.3.8. 包含一個(gè)指向手冊(cè)的超鏈接
1.3.9. 指出相關(guān)的API集合
1.3.10. 包含API的版本號(hào)
1.3.11. 用 @deprecated 標(biāo)記出不再使用的API版本
1.3.12. 考慮添加一個(gè)版權(quán)聲明
1.3.13. 避免過(guò)長(zhǎng)的包概述
1.3.14. 不要在發(fā)布的javadoc中包含實(shí)現(xiàn)相關(guān)的包
2. 類(lèi)型設(shè)計(jì)清單(這里的“類(lèi)型”個(gè)人理解為一組Api)
2.1. 共通
2.1.1. 確保每種(設(shè)計(jì)的)類(lèi)型都有單一明確的目的
2.1.2. 確保每種類(lèi)型代表了(業(yè)務(wù))領(lǐng)域的概念,而不是為了(技術(shù)上)的抽象
2.1.3. 限制類(lèi)型的總數(shù)量
2.1.4. 限制類(lèi)型的大小
2.1.5. 設(shè)計(jì)相關(guān)的類(lèi)型時(shí)保持和原有的類(lèi)型的一致性
2.1.6. 建議為多種public的類(lèi)型提供多種(private)的實(shí)現(xiàn)
2.1.7. 建議接口的實(shí)現(xiàn)類(lèi)和繼承關(guān)系的類(lèi)應(yīng)該在行為上保持一致性
2.1.8. 建議用抽象類(lèi)而不是接口解耦A(yù)pi的實(shí)現(xiàn)
2.1.9. 建議使用枚舉而不是常量
2.1.10. 考慮使用泛型
2.1.11. 考慮在泛型參數(shù)上增加約束
2.1.12. 考慮使用接口來(lái)實(shí)現(xiàn)多繼承的效果
2.1.13. 避免為使用者的擴(kuò)展(需求)進(jìn)行設(shè)計(jì)
2.1.14. 避免深度的繼承層次
2.1.15. 不要使用public內(nèi)嵌的類(lèi)型
2.1.16. 不要申明public和protected的變量
2.1.17. 不要把實(shí)現(xiàn)的繼承關(guān)系暴露給使用者
2.2. 命名
2.2.1. 使用名詞或者名詞詞組
2.2.2. 使用PascalCasing(駝峰命名法的別稱(chēng)詳見(jiàn)http://en.wikipedia.org/wiki/CamelCase )
2.2.3. 縮寫(xiě)僅第一個(gè)首字母大寫(xiě)
2.2.4. 為類(lèi)型的實(shí)際作用使用精確的名稱(chēng)命名
2.2.5. 為最常用的類(lèi)型準(zhǔn)備最短最容易記憶的名稱(chēng)
2.2.6. 所有異常都以“Exception”結(jié)尾
2.2.7. 使用名詞的單數(shù)(比如用Color而不用Colors)來(lái)命名枚舉類(lèi)型
2.2.8. 考慮較長(zhǎng)的名稱(chēng)
2.2.9. 考慮派生類(lèi)用基類(lèi)的名稱(chēng)結(jié)尾
2.2.10. 考慮為抽象類(lèi)名稱(chēng)使用“Abstract”開(kāi)頭
2.2.11. 避免使用縮略語(yǔ)
2.2.12. 避免太通用的名詞
2.2.13. 避免同義詞
2.2.14. 避免在相關(guān)的Api中使用類(lèi)型的名稱(chēng)
2.2.15. 不要使用僅大小寫(xiě)不同的名稱(chēng)
2.2.16. 不要使用前綴
2.2.17. 不要以“I”作為接口的名稱(chēng)開(kāi)頭
2.2.18. 不要(重復(fù))使用Java核心包中的名稱(chēng)
2.3. 類(lèi)
2.3.1. 最小化實(shí)現(xiàn)使用的依賴(lài)
2.3.2. 先列出public方法
2.3.3. 申明實(shí)現(xiàn)方法為private(這里是筆誤嗎?)
2.3.4. 為一個(gè)public抽象類(lèi)定義至少一個(gè)public的shi
2.3.5. 為基本的使用情況提供足夠的缺省實(shí)現(xiàn)
2.3.6. 設(shè)計(jì)基本上不變的類(lèi)
2.3.7. 把無(wú)狀態(tài),訪問(wèn)器,擴(kuò)展(mutator個(gè)人理解為多種參數(shù)形式的方法)方法集合到一起
2.3.8. 把擴(kuò)展方法的數(shù)量控制到最少
2.3.9. 考慮設(shè)計(jì)一個(gè)默認(rèn)的無(wú)參的構(gòu)造方法
2.3.10. 考慮重寫(xiě)equal,hashCode方法
2.3.11. 考慮實(shí)現(xiàn)Comparable接口
2.3.12. 考慮實(shí)現(xiàn)Serializable接口
2.3.13. 考慮使類(lèi)可以容易的擴(kuò)展
2.3.14. 考慮申明類(lèi)為final
2.3.15. 考慮為類(lèi)的實(shí)例化提供一個(gè)public的構(gòu)造方法
2.3.16. 考慮使用自定義的類(lèi)型來(lái)增強(qiáng)類(lèi)的不可變性
2.3.17. 考慮設(shè)計(jì)不可變的類(lèi)
2.3.18. 避免靜態(tài)類(lèi)
2.3.19. 避免使用Cloneable
2.3.20. 不要向靜態(tài)類(lèi)中添加實(shí)例duixi
2.3.21. 不要為使用者不應(yīng)擴(kuò)展的public抽象類(lèi)提供public的構(gòu)造方法
2.3.22. 不要濫用初始化
2.4. 接口
2.4.1. 為每一個(gè)public接口提供至少一個(gè)實(shí)現(xiàn)類(lèi)
2.4.2. 為每一個(gè)public接口設(shè)計(jì)至少一個(gè)消費(fèi)方法
2.4.3. 不要對(duì)一個(gè)已經(jīng)發(fā)布的public接口添加新的方法
2.4.4. 不要使用標(biāo)記接口(標(biāo)記接口詳見(jiàn)http://en.wikipedia.org/wiki/Marker_interface_pattern )
2.4.5. 不要把public接口設(shè)計(jì)成常量的容器(這個(gè)實(shí)在很常見(jiàn)啊……)
2.5. 枚舉
2.5.1. 考慮為枚舉類(lèi)型指定一個(gè)0值(“NONE”或者“Unspecialized”等等)
2.5.2. 避免只有一個(gè)值的枚舉
2.5.3. 不要使用枚舉實(shí)現(xiàn)開(kāi)放式的值集合
2.5.4. 不要為將來(lái)可能增加的值設(shè)計(jì)枚舉
2.5.5. 不要為已經(jīng)發(fā)布的版本增加新的枚舉值
2.6. 異常
2.6.1. 確保自定義的異??梢员恍蛄谢?/p>
2.6.2. 考慮為每種類(lèi)型定義一個(gè)不同的異常
2.6.3. 考慮為代碼訪問(wèn)提供更多的異常信息
2.6.4. 避免深層的異常繼承
2.6.5. 不要從Exception和RuntimeException以外的類(lèi)派生自定義異常
2.6.6. 不要直接從Throwable派生異常
2.6.7. 不要在異常信息內(nèi)包含敏感信息
2.7. 文檔
2.7.1. 為每種類(lèi)型(的Api)配上概述
2.7.2. 遵循標(biāo)準(zhǔn)Javadoc的約定
2.7.3. 每種類(lèi)型開(kāi)頭以一句短小的話概述
2.7.4. 為是否使用以及如何使用該類(lèi)型提供足夠的細(xì)節(jié)來(lái)幫助做決定
2.7.5. 解釋如何實(shí)例化一個(gè)類(lèi)型
2.7.6. 為一個(gè)類(lèi)型的主要的使用情景提供樣例代碼
2.7.7. 包含指向到開(kāi)發(fā)指南的鏈接
2.7.8. 包含指向手冊(cè)的鏈接
2.7.9. 顯示相關(guān)的類(lèi)型
2.7.10. 用@deprecated標(biāo)簽申明過(guò)時(shí)的類(lèi)型
2.7.11. 文檔類(lèi)具有不可變性
2.7.12. 避免冗長(zhǎng)的類(lèi)概述
2.7.13. 不要為私有方法生成Javadoc
3. 方法設(shè)計(jì)清單
3.1. 共通
3.1.1. 確保每個(gè)方法實(shí)現(xiàn)一個(gè)目的
3.1.2. 確保相關(guān)的方法都是一個(gè)粒度級(jí)別的
3.1.3. 確保沒(méi)有混合調(diào)用方法的公共代碼
3.1.4. 使所有方法的調(diào)用具有原子性(原子性:http://jiangyongyuan.iteye.com/blog/364010)
3.1.5. 設(shè)計(jì)protected方法時(shí)要像public方法一樣慎重
3.1.6. 限制擴(kuò)展方法的數(shù)量
3.1.7. 設(shè)計(jì)擴(kuò)展方法需要具有較強(qiáng)的穩(wěn)定性
3.1.8. 建議為一系列重載的方法設(shè)計(jì)一個(gè)泛型的方法
3.1.9. 考慮使用泛型方法
3.1.10. 考慮設(shè)計(jì)方法對(duì),即兩個(gè)方法的作用是相反的
3.1.11. 避免“helper”方法
3.1.12. 避免長(zhǎng)時(shí)間執(zhí)行的方法
3.1.13. 避免調(diào)用者在普通使用中需要手動(dòng)寫(xiě)循環(huán)
3.1.14. 避免可選的參數(shù)影響方法的行為
3.1.15. 避免不可重復(fù)調(diào)用的方法
3.1.16. 不要?jiǎng)h除一個(gè)已經(jīng)發(fā)布的方法
3.1.17. 不要在沒(méi)有提供替換方法前把一個(gè)已經(jīng)發(fā)布的方法標(biāo)記為過(guò)時(shí)
3.1.18. 不要修改一個(gè)已經(jīng)發(fā)布的方法的簽名
3.1.19. 不要修改一個(gè)已經(jīng)發(fā)布的方法的可觀測(cè)行為(也許指的是輸出之類(lèi))
3.1.20. 不要增加一個(gè)已經(jīng)發(fā)布方法的調(diào)用條件
3.1.21. 不要減少一個(gè)已經(jīng)發(fā)布方法的調(diào)用結(jié)果
3.1.22. 不要為已經(jīng)發(fā)布的public接口新增方法
3.1.23. 不要為已經(jīng)發(fā)布的Api新增重載
3.2. 命名
3.2.1. 用給力的,有表達(dá)力的動(dòng)詞作為名稱(chēng)起始
3.2.2. 使用駝峰命名法(好奇怪,前面寫(xiě)的是PascalNaming)
3.2.3. 為JavaBean的私有屬性預(yù)留“get”“set”“is”等訪問(wèn)方法
3.2.4. 使用對(duì)調(diào)用者熟悉的詞語(yǔ)
3.2.5. 盡量使用英語(yǔ)口語(yǔ)
3.2.6. 避免使用縮略語(yǔ)
3.2.7. 避免使用一般的動(dòng)詞
3.2.8. 避免同義詞
3.2.9. 不要使用“黑話”
3.2.10. 不要依靠參數(shù)的名稱(chēng)和類(lèi)型判斷方法的意義
3.3. 參數(shù)
3.3.1. 為參數(shù)選擇最合適的類(lèi)型
3.3.2. 在相關(guān)方法的調(diào)用中對(duì)參數(shù)為null值的處理保持一致性
3.3.3. 在相關(guān)方法中參數(shù)的名稱(chēng),類(lèi)型和順序需要保持一致
3.3.4. 在參數(shù)列表中把輸出的參數(shù)放到輸入?yún)?shù)之后
3.3.5. 為重載的方法省略常用的默認(rèn)參數(shù)以提供一個(gè)較短的參數(shù)列表
3.3.6. 在無(wú)關(guān)的類(lèi)型中為相同語(yǔ)義的操作提供重載方法
3.3.7. 建議使用接口而不是具體類(lèi)作為參數(shù)
3.3.8. 建議使用集合而不是數(shù)組作為參數(shù)和返回值
3.3.9. 建議使用一般集合而不是原始(無(wú)類(lèi)型)集合
3.3.10. 建議使用枚舉而不是Boolean或者Integer作為參數(shù)
3.3.11. 建議把單個(gè)的參數(shù)放到集合或者數(shù)組參數(shù)之前
3.3.12. 建議把自定義類(lèi)型的參數(shù)放大Java標(biāo)準(zhǔn)類(lèi)型參數(shù)之前
3.3.13. 建議把對(duì)象類(lèi)型的參數(shù)方法值類(lèi)型的參數(shù)之前
3.3.14. 建議使用接口而不是具體類(lèi)作為返回值
3.3.15. 建議把空的集合而不是null作為返回值
3.3.16. 建議把返回值設(shè)計(jì)成可以作為其他方法的合法輸入?yún)?shù)
3.3.17. 考慮為不可變參數(shù)設(shè)計(jì)一個(gè)副本
3.3.18. 考慮在內(nèi)部存儲(chǔ)弱引用的對(duì)象
3.3.19. 避免參數(shù)數(shù)量變更
3.3.20. 避免參數(shù)長(zhǎng)度太長(zhǎng)(超過(guò)3個(gè))
3.3.21. 避免連續(xù)的同類(lèi)型的參數(shù)
3.3.22. 避免用作輸出或者輸入輸出的參數(shù)
3.3.23. 避免方法重載
3.3.24. 避免參數(shù)類(lèi)型暴露實(shí)現(xiàn)細(xì)節(jié)
3.3.25. 避免boolean參數(shù)
3.3.26. 避免返回null
3.3.27. 除了Java核心Api,避免把類(lèi)型作為不相關(guān)的Api的返回值
3.3.28. 避免把可變的內(nèi)部對(duì)象作為返回值來(lái)引用
3.3.29. 不要把預(yù)先設(shè)置的常量作為整型值參數(shù)使用
3.3.30. 不要為將來(lái)的(擴(kuò)展設(shè)計(jì))考慮預(yù)留參數(shù)
3.3.31. 不要在重載方法中改變參數(shù)的名稱(chēng)的順序
3.4. 異常處理
3.4.1. 只有在異常情況下才拋出異常
3.4.2. 只需要為可恢復(fù)的錯(cuò)誤拋出已確認(rèn)的異常
3.4.3. 為了通知Api使用錯(cuò)誤而拋出運(yùn)行時(shí)異常
3.4.4. 在適當(dāng)?shù)某橄髮哟螔伋霎惓?/p>
3.4.5. 進(jìn)行運(yùn)行時(shí)預(yù)置條件的檢查
3.4.6. 為一個(gè)被不能為null的參數(shù)拋出空指針異常
3.4.7. 為一個(gè)除為null以外異常值的參數(shù)排除非法參數(shù)異常
3.4.8. 為一個(gè)錯(cuò)誤上下文環(huán)境中的方法調(diào)用拋出非法狀態(tài)異常
3.4.9. 在錯(cuò)誤信息中顯示出參數(shù)的預(yù)置條件
3.4.10. 確保失敗的方法調(diào)用不會(huì)產(chǎn)生單向的后果
3.4.11. 為回調(diào)方法中的禁止使用的Api提供運(yùn)行時(shí)檢查
3.4.12. 建議優(yōu)先使用Java標(biāo)準(zhǔn)異常
3.4.13. 建議提供拋出異常的條件的查詢方法
3.5. 重寫(xiě)
3.5.1. 使用@Override注解
3.5.2. 維持或弱化預(yù)置條件
3.5.3. 維持或者加強(qiáng)后置條件(不好翻譯,大概output+effect的意思)
3.5.4. 維持或者加強(qiáng)不可變性
3.5.5. 不要拋出新增的運(yùn)行時(shí)異常
3.5.6. 不要更改方法的類(lèi)型(無(wú)狀態(tài),訪問(wèn)器或者擴(kuò)展方法等)
3.6. 構(gòu)造方法
3.6.1. 最小化構(gòu)造方法中的工作
3.6.2. 為所有的屬性設(shè)置合理的默認(rèn)值
3.6.3. 僅把構(gòu)造方法的參數(shù)作為一種設(shè)置參數(shù)的快捷方法
3.6.4. 校驗(yàn)構(gòu)造方法的參數(shù)
3.6.5. 以參數(shù)相應(yīng)的屬性為其命名
3.6.6. 當(dāng)提供了多個(gè)構(gòu)造方法時(shí),遵循指南對(duì)其進(jìn)行重載
3.6.7. 建議使用構(gòu)造方法而不是靜態(tài)的工廠方法
3.6.8. 考慮使用無(wú)參的構(gòu)造方法
3.6.9. 如果不是總需要新的實(shí)例,考慮使用靜態(tài)的工廠方法
3.6.10. 如果你需要在運(yùn)行時(shí)決定一個(gè)合適的類(lèi)型,考慮使用靜態(tài)的工廠方法
3.6.11. 如果你需要訪問(wèn)外部的資源,考慮使用靜態(tài)的工廠方法
3.6.12. 當(dāng)面臨非常多的參數(shù)的時(shí)候,考慮使用生成器(builder)
3.6.13. 當(dāng)需要回避直接實(shí)例化類(lèi)的時(shí)候使用考慮private的構(gòu)造函數(shù)
3.6.14. 避免創(chuàng)建非必需的對(duì)象
3.6.15. 避免finalizer
3.6.16. 不要從無(wú)參的構(gòu)造方法中拋出異常
3.6.17. 不要向一個(gè)已經(jīng)發(fā)布的類(lèi)中添加顯示的構(gòu)造方法
3.7. Setters和getters
3.7.1. 以get開(kāi)頭命名一個(gè)返回值不為boolean的訪問(wèn)屬性的方法
3.7.2. 以is,can開(kāi)頭命名一個(gè)返回值為boolean的訪問(wèn)屬性的方法
3.7.3. 以set開(kāi)頭命名一個(gè)更新本地變量的方法
3.7.4. 校驗(yàn)setter方法的參數(shù)
3.7.5. 最小化getter和setter方法的工作
3.7.6. 考慮從一個(gè)getter方法中返回不可變的集合
3.7.7. 考慮實(shí)現(xiàn)一個(gè)private接口的集合替代public的集合屬性
3.7.8. 考慮只讀的屬性
3.7.9. 設(shè)置可變類(lèi)型的屬性時(shí)考慮Defensive Copy(Defensive Copy詳見(jiàn):http://www.javapractices.com/topic/TopicAction.do?Id=15 )
3.7.10. 當(dāng)返回可變類(lèi)型的屬性時(shí)考慮Defensive Copy
3.7.11. getter方法避免返回?cái)?shù)組
3.7.12. 避免根據(jù)方法內(nèi)信息無(wú)法完成的校驗(yàn)
3.7.13. 不要從getter方法中拋出異常
3.7.14. 不要設(shè)計(jì)只能set的屬性方法 (僅有public的setter而沒(méi)有public的getter)
3.7.15. 不要依賴(lài)屬性設(shè)置的順序
3.8. 回調(diào)
3.8.1. 設(shè)計(jì)時(shí)使用最嚴(yán)密的預(yù)置條件
3.8.2. 設(shè)計(jì)時(shí)使用最弱的后置條件
3.8.3. 考慮傳遞引用對(duì)象的方法中把回調(diào)接口作為第一個(gè)參數(shù)
3.8.4. 避免有返回值的回調(diào)方法
3.9. 文檔
3.9.1. 為每個(gè)方法提供Javadoc注釋
3.9.2. 遵循標(biāo)準(zhǔn)的Javadoc約定
3.9.3. 每個(gè)方法以一句短小的話作為概述
3.9.4. 申明相關(guān)的方法
3.9.5. 用@deprecated標(biāo)簽申明過(guò)時(shí)的類(lèi)型
3.9.6. 顯示所有過(guò)時(shí)方法的替換方法
3.9.7. 避免冗長(zhǎng)的zhus
3.9.8. 包含常用的使用模式
3.9.9. (如果允許的話)包含null值的確切含義
3.9.10. 包含方法的類(lèi)型 (無(wú)狀態(tài),訪問(wèn)器或者擴(kuò)展)
3.9.11. 包含方法的預(yù)置條件
3.9.12. 包含算法實(shí)現(xiàn)的性能特征
3.9.13. 包含遠(yuǎn)程方法調(diào)用
3.9.14. 包含訪問(wèn)外部資源的方法
3.9.15. 包含哪些API可以在回調(diào)中使用
3.9.16. 考慮為了描述方法的行為而包含單元測(cè)試
以上就是Java API的設(shè)計(jì)清單是什么的全部?jī)?nèi)容了,更多與Java API的設(shè)計(jì)清單是什么相關(guān)的內(nèi)容可以搜索創(chuàng)新互聯(lián)之前的文章或者瀏覽下面的文章進(jìn)行學(xué)習(xí)哈!相信小編會(huì)給大家增添更多知識(shí),希望大家能夠支持一下創(chuàng)新互聯(lián)!
文章題目:JavaAPI的設(shè)計(jì)清單是什么
瀏覽路徑:http://jinyejixie.com/article0/ppieio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、標(biāo)簽優(yōu)化、域名注冊(cè)、移動(dòng)網(wǎng)站建設(shè)、微信公眾號(hào)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)