Retrofit的設計模式 -- 外觀模式

特點

個人理解外觀模式就是兩個字: 封裝.

Paste_Image.png
  1. 一個大模塊本身包含很多小模塊,這些小模塊本身是對外屏蔽的.
  2. 各個模塊可以通過這個大模塊進行很好的通信,減少了相互間的依賴.
  3. 使用者只是使用一個大模塊對象,成本低.
  4. 如果后期子模塊有改動或者替換,只要不改動大模塊對外的接口,對使用者來說不受任何影響,體現了開閉原則.

缺點

因為一個大模塊包含那么多小模塊,需要把各個模塊的功能都提供出去,這樣很容易導致大模塊的API很多,導致接口膨脹.

使用Demo

因為公司APP使用了Hybird的開發方式,所以使用了大量的WebView,每一個WebView頁面都會涉及到加載中、加載失敗、網絡異常、正常顯示、異常顯示自定義錯誤頁面、緩存處理等情況,并且業務還需要加上下拉刷新,因為是重復操作并且WebView和下拉刷新之間有通信,所以非常符合外觀模式的場景,就封裝了一個控件出來GitHub地址GWebView

webview.gif

本控件特點:

  1. 封裝了WebView中一些繁瑣的設置,比如WebSettings、WebViewClient、WebChromeClient等,并且如果默認設置不滿足要求也可以自定義.
  2. 下拉頭本來用的SwipeRefreshLayout,因為產品經理不喜歡那個下拉頭,所以在此基礎上改造了一下,如果不能滿足要求,這個下拉頭也可以自定義.
  3. SwipeRefreshLayout和?WebView的滑動沖突已經解決,就是加一層布局ScrollView,并且封裝了他們直接滑動的邏輯.
  4. 布局中增加了默認的加載中、加載失敗、無網絡布局,這樣不用每次都判斷,同上也提供了自定義接口.

總結

特點:封裝
就是把各個模式組合在一起,能更好的使用,避免繁瑣的每次配置,并且各個模式也可以更好的通信,最好的體現就是第三方SDK.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,811評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,180評論 4 61
  • 現在網上很多身材好的漂亮女孩大肆秀身材,什么A4腰,反手摸肚臍等等各種秀,扎了好多女人的心。那么為什么她們的腰那么...
    小易教瘦閱讀 383評論 0 0
  • 眾所周知,JavaScript是單線程,同一時刻只會有一段代碼在運行。JavaScript又具有異步的特性,這二者...
    pixels閱讀 360評論 0 2
  • 昨晚上喝了一些酒,站在在地鐵站里,渴望自己能像個幽靈一樣四處飄蕩,飄到天花板上,隨著飛馳的列車沖進黑乎乎的隧道里,...
    豚月閱讀 228評論 0 0