美文网首页
Retrofit的设计模式 -- 外观模式

Retrofit的设计模式 -- 外观模式

作者: gzfgeh | 来源:发表于2016-12-17 21:27 被阅读42次

    特点

    个人理解外观模式就是两个字: 封装.

    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.

    相关文章

      网友评论

          本文标题:Retrofit的设计模式 -- 外观模式

          本文链接:https://www.haomeiwen.com/subject/mqbomttx.html