封裝(二)

   整個界面從封裝的角度上來看,其實與某個控件是同樣的。
安全

   爲何整個界面都要封裝呢?服務器

   在項目開發過程當中,咱們每每會碰到一系列類似度比較高的界面,只是內容不一樣或少部分界面UI不一樣。這時,咱們能夠將共性的東西抽出來,封裝成界面類。這樣的界面類能夠在整個項目中被各界面方便的重用,也能夠跨項目的重用。最經典的例子就是「設置界面」。app

    一個界面一樣也有輸入、輸出及特定的完成功能。咱們來看看比較常見的列表選擇跳轉下一個詳情界面的例子。spa

   代碼較多,這裏就不寫了。用僞代碼來演示code

//列表界面

展現一個列表
從服務器獲取數據,更新數據源
刷新列表顯示最新數據

當點擊某個列表行的時候,根據列表行的索引值,從數據源裏獲取對應的數據
建立詳情界面
將數據做爲參數傳遞給詳情界面
在屏幕上顯示詳情界面

//詳情界面

展現一個詳情頁面
對外部傳遞進來的參數進行處理,造成本界面獨特的數據源
根據數據源刷新整個界面

    上面的僞代碼演示了從列表界面切換詳情界面的通常過程。索引

    請注意 「將數據做爲參數傳遞給詳情界面這個地方。接口

一樣有兩種作法:開發

一、在列表界面準備好全部數據,傳遞給詳情界面。詳情界面用外部傳遞進來的數據更新界面元素。class

二、在列表界面僅下載自身須要的數據,只傳遞給詳情界面一個ID號或一個名字之類的索引值。詳情界面根據外部傳遞進來的索引,本身到服務器去獲取須要的數據。下載

咱們來分析一下優缺點:

    採用第一種方法,多個界面重用詳情界面類。由於上一界面是不一樣的列表界面,有時甚至不是列表界面,沒法獲取相應的數據,須要在其餘界面代碼裏訪問服務器,下載數據,而後傳遞給詳情界面。增長了其餘界面的複雜度。

    當詳情界面版本升級,所須要的數據發生變化,必須修改全部涉及到的上層界面代碼。

這種不方便,在一種狀況下達到了極致。這種狀況就是「處理推送消息」。

    當咱們接收到一條推送消息時,須要解析推送過來的消息內容,根據內容跳轉到指定的界面。好比收到一條「某某評論了你的某篇文章」。

    第一種方法須要在appDelegate裏下載那篇文章的詳情,而後建立詳情界面、傳入數據、在界面上顯示。當接收的推送種類比較多,不是一種,而是10種,則必須在appDelegate裏準備10種不一樣服務器接口的代碼。

   第二種方法,僅須要將某個特定ID傳遞給對應的界面,就不用管了。

由此,咱們能夠體會到封裝的第二條原則:

誰的事情就讓它本身來作,不要去作不是本身範圍的事情。

封裝類提供的對外接口越簡單,越少,則通用性和安全性越高。

相關文章
相關標籤/搜索