<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之旅 廣告
                擴展函數在開發中為我們提供了非常多的便利,但是在實際應用中,我們可能會將這個特性濫用。 在上一節中,我們提到過一些常用的方法封裝到Utils類中,其中就包括ImageLoaderUtsils。這里以其中加載網絡圖片為例: ``` fun Context.loadImage(url:String, imageView :ImageView){ GlideApp.with(this) .load(url) .placeholder(R.mipmap.img_default) .error(R.mipmap.ic_error) .into(imageView) } // ImageActivity.kt中使用 ... this.loadImage(url, imgView) ... ``` 也許你在用的時候并沒有感覺出什么奇怪的地方,但是實際上,我們并沒有以任何方式擴展現有類。**上述代碼僅僅為了在函數調用的時候省去參數,這是一種濫用擴展機制的行為**。 我們知道,**Context作為“God Object”,已經承擔了很多責任。我們基于Context擴展,還很可能產生ImageView與傳入上下文周期不一致導致的很多問題**。 **正確的做法應該是在ImageView上進行擴展**: ``` fun ImageView.loadImage(url:String){ GlideApp.with(this.context) .load(url) .placeholder(R.mipmap.img_default) .error(R.mipmap.ic_error) .into(this) } ``` **這樣在調用的時候,不僅省去了更多的參數,而且ImageView的生命周期也得到了保證**。 **實際項目中,我們還需要考慮網絡請求框架替換及維護的問題,一般會對圖片請求框架進行二次封裝**: ``` object ImageLoader { fun with(context: Context, url: String, imageView: ImageView) { GlideApp.with(context) .load(url) .placeholder(R.mipmap.img_default) .error(R.mipmap.ic_error) .into(imageView) } ... } ``` 所以,**雖然擴展函數能夠提供許多便利,我們還是應該注意在恰當的地方使用它,否則會造成不必要的麻煩**。
                  <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>

                              哎呀哎呀视频在线观看