列一下OOP规约,编程的时候共勉!别踏坑!
生活随笔
收集整理的這篇文章主要介紹了
列一下OOP规约,编程的时候共勉!别踏坑!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
說明: getObject() 與 get 0 bject() 的問題。一個是字母的 O ,一個是數字的 0,加@ Override
可以準確判斷是否覆蓋成功。另外,如果在抽象類中對方法簽名進行修改,其實現類會馬上編
譯報錯。
說明:可變參數必須放置在參數列表的最后。 ( 提倡同學們盡量不用可變參數編程 )
正例: public List listUsers(String type, Long… ids) {…}
說明: java . net . URLDecoder 中的方法 decode(String encodeStr) 這個方法已經過時,應該使用雙參數 decode(String source, String encode) 。接口提供方既然明確是過時接口,那么有義務同時提供新的接口 ; 作為調用方來說,有義務去考證過時方法的新實現是什么。
正例:" test " .equals(object);
反例: object.equals( " test " );
說明:推薦使用 java . util . Objects # equals(JDK 7 引入的工具類 )
說明:對于 Integer var = ? 在-128 至 127 范圍內的賦值, Integer 對象是在IntegerCache . cache 產生,會復用已有對象,這個區間內的 Integer 值可以直接使用==進行判斷,但是這個區間之外的所有數據,都會在堆上產生,并不會復用已有對象,這是一個大坑,推薦使用 equals 方法進行判斷。
1 ) 【強制】所有的 POJO 類屬性必須使用包裝數據類型。
2 ) 【強制】 RPC 方法的返回值和參數必須使用包裝數據類型。
3 ) 【推薦】所有的局部變量使用基本數據類型。
說明: POJO 類屬性沒有初值是提醒使用者在需要使用時,必須自己顯式地進行賦值,任何NPE 問題,或者入庫檢查,都由使用者來保證。
正例:數據庫的查詢結果可能是 null ,因為自動拆箱,用基本數據類型接收有 NPE 風險。
反例:比如顯示成交總額漲跌情況,即正負 x %, x 為基本數據類型,調用的 RPC 服務,調用不成功時,返回的是默認值,頁面顯示為 0%,這是不合理的,應該顯示成中劃線。所以包裝數據類型的 null 值,能夠表示額外的信息,如:遠程調用失敗,異常退出。
反例: POJO 類的 gmtCreate 默認值為 new Date(), 但是這個屬性在數據提取時并沒有置入具體值,在更新其它字段時又附帶更新了此字段,導致創建時間被修改成當前時間。
說明:在方法執行拋出異常時,可以直接調用 POJO 的 toString() 方法打印其屬性值,便于排查問題。
說明:框架在調用屬性 xxx 的提取方法時,并不能確定哪個方法一定是被優先調用到。
至于對OOP規約的推薦方式,就不多說了,強制的要記好,別認為是在瞎說,以上強制13條,均摘自阿里巴巴開發手冊!
總結
以上是生活随笔為你收集整理的列一下OOP规约,编程的时候共勉!别踏坑!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spark的实战题目——寻找5亿次访问中
- 下一篇: 京东JDHBase异地多活实践