移動App設計之分層架構+MVC


場景分析:我們知道,一個移動設備的應用大多與網絡有關,也就是說,我在移動設備上看到的數據,一般都是從Server上”拉“過來,顯示在我們的移動設備(ios androiud、wpohone等)上。那我們就這個”拉“的過程分析,拉什么樣的數據?去哪里拉?拉過來的數據怎么處理?用編程(開發)的思維看,就是定義什么實體(業務實體)、發送請求、解析數據。當然這也只是大體的過程。但從軟件架構設計上講,定義實體、發送請求、解析數據都是具有單獨意義的模塊。那我們怎么處理這些模塊呢?

場景應用:sina weibo。定義timeline、user等實體;請求最新的微薄等;處理(主要是解析)請求的數據;最后是顯示在移動設備的UI上。


回到前面的問題,我們該如何處理這個具有單獨意義的模塊呢?讓我們借鑒下web的設計:

在傳統的web系統設計中,數據庫的訪問、業務邏輯和UI設計混淆在一起,這樣雖然直觀,但一旦需求有所改動,對日后的維護帶來很多不便。為了解決這個問題,人們提出了分層的架構思想。

分層架構模式:

  "將解決方案的組件分隔到不同的層中,每一層中的組件應保持內聚性,各層保持松散耦合。" 分層模式是最常見的一種架構模式。在web應用系統開發中,比較流行三層架構(表現層、業務邏輯層、數據訪問層),當然我們細分,也可以分層多層(我記得那時候我分七層)。

  現時隔多年,如今反觀移動App架構設計(對大程序而言,有人說移動設備很難開發大的系統,我不是完全贊同此說法),分層架構的設計仍然少不了。遠的不說,就說IOS App的開發,蘋果的設計是基於MVC的設計模式。

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范。MVC的目的是將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。

我們細看下,其實他也是分層(三層)架構的。也就是說,它的設計思想也是分層。

既然MVC也是分層,那何不把App整體設計成分層架構,MVC保持原來的設計不變。將一些具有單獨意義解決問題的模塊分層,讓他們服務於MVC呢?

那我可以分享(只是分享)一下我一個App的架構。如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM