上一篇文章《Android也架構之三:簡單工廠模式優化網絡請求》中,咱們知道了如何經過簡單工廠模式去獲取網絡的內容,又知道了如何把這些內容顯示在咱們的界面上,可是咱們拿到的都是html文本內容。這篇文章中,咱們將講到了如何去解析這些html,得到咱們想要的內容。php
經過這篇文章的學習,你將學會一下幾個知識點:html
1,門面模式在android中的應用java
2,學會使用jsoup框架解析html。node
廢話少說,咱們首先來看下什麼是門面模式:android
門面模式要求一個子系統的外部與其內部的通訊必須經過一個統一的門面(Facade)對象進行。門面模式提供一個高層次的接口,使得子系統更易於使用。 面試
門面(Facade)角色:客戶端能夠調用這個角色的方法。此角色知曉相關的(一個或者多個)子系統的功能和責任。在正常狀況下,本角色會將全部從客戶端發來的請求委派到相應的子系統去。編程
子系統(subsystem)角色:能夠同時有一個或者多個子系統。每個子系統都不是一個單獨的類,而是一個類的集合。每個子系統均可以被客戶端直接調用,或者被門面角色調用。子系統並不知道門面的存在,對於子系統而言,門面僅僅是另一個客戶端而已。json
在咱們一下的例子中,門面是facade.java,子系統有網絡系統(從網絡中獲取響應數據)和數據解析系統(解析html代碼)網絡
網絡系統的代碼能夠直接看上一篇文章《Android也架構之三:簡單工廠模式優化網絡請求》的代碼,這裏就不在貼出。架構
首先咱們來看一下html數據解析代碼:
數據解析接口和數據解析工廠類(爲何用工廠,能夠查看上一篇文章)
DataAnalyze.java
接下來咱們來看下門面模式的核心類facade.java
在這裏,咱們明顯的能感受到,當客戶端FacadeActivity要去實現某項功能的時候,無需與各個子系統去打交道,直接去門面獲取就好了,這樣就下降了耦合度,當未來因爲某些緣由,子系統改變了,咱們的客戶端的代碼也無需改變,同時子系統又採用了工廠模式,基於接口編程原則(可插拔),又給系統下降了一層的耦合。
FacadeActivity.java 這個是android用來顯示數據的activity組件
如今代碼已經完畢。無圖無真相,上圖。
代碼下載地址:
http://download.csdn.net/detail/michael_yy/4561839
文章出處說明來之CSDN:http://blog.csdn.net/michael_yy/article/details/7965168
你們多多指教,轉載請註明來之 http://www.devchina.com/ 或者http://blog.csdn.net/michael_yy, 謝謝。
謝謝你們關注,我繼續在博客中講解了經典的23中模式中在android實際項目中靈活運用,下一篇 《Android也架構之五:適配器模式把html文章列表顯示在android的listview上》敬請關注。