<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 設計優秀API的五大規則 規則1:建立強有力的專業術語 隨著API的不斷增長,這些專業術語會被重復使用。例如,這些行為會導致各種類/類型/方法(classes/types/methods)產生不同微妙的行為。 事實上,他們看起來很相似,需要通過命名來區分。以JDBC為例,無論你執行哪條語句,你都需要使用它們來執行。比如,你可以調用這些方法: ~~~ execute(String) executeBatch() executeQuery(String) executeUpdate(String) ~~~ 與之類似,無論你發布哪些資源,你都經常使用一些術語,比如,你會調用: ~~~ Connection.close() Statement.close() ResultSet.close() ~~~ 事實上,close在JDK中是一款強大的且已被確立的專業術語,這就導致java.io.Closeable (since Java 1.5)與java.lang.AutoCloseable (since Java 1.7)接口建立了釋放資源約定。 該類聲明 ~~~ countObservers() deleteObserver(Observer) deleteObservers() ~~~ 同樣適用于Observer.update(),實則應稱為notify(),JDK API里的另一個術語。 規則2:在組合上運用對稱的命名方式 一旦你創建強有力的條款,你會開始將他們結合起來。當你看到JDK收集APIS,你會注意到它們以對稱的方式創建條款add()、remove()、contains()等等,在將其結合之前: ~~~ add(E) addAll(Collection<? extends E>) remove(Object) removeAll(Collection<?>) contains(Object) containsAll(Collection<?>) ~~~ 規則3:使用重載 人們之所以使用方法重載,主要是因為它給程序帶來了許多方便。你經常希望在不同的地方做相同的事情,但每次去構造方法又很繁瑣,那怎么辦?你只需為API用戶在相同的方法里提供額外的變量,并且把參數類型設置成友好型(friend)。下面以Collection為例: ~~~ toArray() toArray(T[]) ~~~ 另外一個是Arrays utility類: ~~~ copyOf(T[], int) copyOf(boolean[], int) copyOf(int[], int) ~~~ 使用重載的兩大原因: 1. 提供“default”參數行為,正如Collection.toArray() 2. 支持一些不兼容的“相似”參數設置,如 Arrays.copyOf() 規則4:參數順序一致 為了確保參數順序的一致性,把數組類型放在第一位會給你帶來很多好處: ~~~ copyOf(T[], int) copyOf(boolean[], int) copyOf(int[], int) ~~~ 你會注意到,在上面那個類中,把所有數組操作都放在第一位
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看