日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

列一下OOP规约,编程的时候共勉!别踏坑!

發布時間:2024/2/28 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 列一下OOP规约,编程的时候共勉!别踏坑! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 【強制】避免通過一個類的對象引用訪問此類的靜態變量或靜態方法,無謂增加編譯器解析成本,直接用類名來訪問即可。
  • 【強制】所有的覆寫方法,必須加@ Override 注解。
    說明: getObject() 與 get 0 bject() 的問題。一個是字母的 O ,一個是數字的 0,加@ Override
    可以準確判斷是否覆蓋成功。另外,如果在抽象類中對方法簽名進行修改,其實現類會馬上編
    譯報錯。
  • 【強制】相同參數類型,相同業務含義,才可以使用 Java 的可變參數,避免使用 Object 。
    說明:可變參數必須放置在參數列表的最后。 ( 提倡同學們盡量不用可變參數編程 )
    正例: public List listUsers(String type, Long… ids) {…}
  • 【強制】外部正在調用或者二方庫依賴的接口,不允許修改方法簽名,避免對接口調用方產生影響。接口過時必須加@ Deprecated 注解,并清晰地說明采用的新接口或者新服務是什么。
  • 【強制】不能使用過時的類或方法。
    說明: java . net . URLDecoder 中的方法 decode(String encodeStr) 這個方法已經過時,應該使用雙參數 decode(String source, String encode) 。接口提供方既然明確是過時接口,那么有義務同時提供新的接口 ; 作為調用方來說,有義務去考證過時方法的新實現是什么。
  • 【強制】 Object 的 equals 方法容易拋空指針異常,應使用常量或確定有值的對象來調用equals 。
    正例:" test " .equals(object);
    反例: object.equals( " test " );
    說明:推薦使用 java . util . Objects # equals(JDK 7 引入的工具類 )
  • 【強制】所有的相同類型的包裝類對象之間值的比較,全部使用 equals 方法比較。
    說明:對于 Integer var = ? 在-128 至 127 范圍內的賦值, Integer 對象是在IntegerCache . cache 產生,會復用已有對象,這個區間內的 Integer 值可以直接使用==進行判斷,但是這個區間之外的所有數據,都會在堆上產生,并不會復用已有對象,這是一個大坑,推薦使用 equals 方法進行判斷。
  • 關于基本數據類型與包裝數據類型的使用標準如下:
    1 ) 【強制】所有的 POJO 類屬性必須使用包裝數據類型。
    2 ) 【強制】 RPC 方法的返回值和參數必須使用包裝數據類型。
    3 ) 【推薦】所有的局部變量使用基本數據類型。
    說明: POJO 類屬性沒有初值是提醒使用者在需要使用時,必須自己顯式地進行賦值,任何NPE 問題,或者入庫檢查,都由使用者來保證。
    正例:數據庫的查詢結果可能是 null ,因為自動拆箱,用基本數據類型接收有 NPE 風險。
    反例:比如顯示成交總額漲跌情況,即正負 x %, x 為基本數據類型,調用的 RPC 服務,調用不成功時,返回的是默認值,頁面顯示為 0%,這是不合理的,應該顯示成中劃線。所以包裝數據類型的 null 值,能夠表示額外的信息,如:遠程調用失敗,異常退出。
  • 【強制】定義 DO / DTO / VO 等 POJO 類時,不要設定任何屬性默認值。
    反例: POJO 類的 gmtCreate 默認值為 new Date(), 但是這個屬性在數據提取時并沒有置入具體值,在更新其它字段時又附帶更新了此字段,導致創建時間被修改成當前時間。
  • 【強制】序列化類新增屬性時,請不要修改 serialVersionUID 字段,避免反序列失敗 ; 如果完全不兼容升級,避免反序列化混亂,那么請修改 serialVersionUID 值。說明:注意 serialVersionUID 不一致會拋出序列化運行時異常。
  • 【強制】構造方法里面禁止加入任何業務邏輯,如果有初始化邏輯,請放在 init 方法中。
  • 【強制】 POJO 類必須寫 toString 方法。使用 IDE 中的工具: source > generate toString時,如果繼承了另一個 POJO 類,注意在前面加一下 super . toString 。
    說明:在方法執行拋出異常時,可以直接調用 POJO 的 toString() 方法打印其屬性值,便于排查問題。
  • 【強制】禁止在 POJO 類中,同時存在對應屬性 xxx 的 isXxx() 和 getXxx() 方法。
    說明:框架在調用屬性 xxx 的提取方法時,并不能確定哪個方法一定是被優先調用到。
  • 至于對OOP規約的推薦方式,就不多說了,強制的要記好,別認為是在瞎說,以上強制13條,均摘自阿里巴巴開發手冊!

    總結

    以上是生活随笔為你收集整理的列一下OOP规约,编程的时候共勉!别踏坑!的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。