iOS軟體開發架構理解

來源:互聯網
上載者:User

標籤:

這個東西是硬傷,架構?內建的mvc? 內建的UIViewController UIView UINavigationController 這些算不算?當然算的,cocoa架構嘛,大家都知道。

其實,我想分享的是:整個軟體設計的代碼結構管理。在閱讀了不少源碼後,總結出來的好的設計代碼結構分布邏輯。

一開始,我們學會了簡單的使用UIButton,UIImage等這些常用的視圖類的時候,我們其實已經能夠寫出來一般的軟體了。常見的功能,這裡添加一點,那裡添加一點,這裡一個網路請求,這裡一個bool類型判斷,例如常見的:isDownding? reLoading?

這些,我們經常在ViewController中就直接寫了,於是,飛快的打出來:@property(nonatomic, assign)BOOL reLoading; 然後代碼中,多處引用的地方進行處理。

而如果加上一個網路請求,資料柔和,加上幾個成員變數,NSArray, NSDictionary, 什麼的,再接著,多上幾個又臭又長的正則匹配什麼的。可以想象,這個ViewController已經非常長了。示範:

好了,我們開始來改進代碼了,第一步,把基本的view獨立出來一個view檔案的存放,分離出來。這樣子至少省了3分之一的代碼,再viewController中,而且極大的提高了代碼閱讀效率。直接看viewController就能看完整體邏輯。而可以先不管具體實現。

然後接著,我們又覺得還是不夠,不夠精簡。對。於是,我們把資料獨立出來。對抽象獨立出來。建立專門的Object Storage Service資料對象。可以發現,無一例外的,所有的大型軟體都會這麼做。也可以省了好多代碼,提高閱讀代碼體驗,極大的解耦了代碼。這兩種方法相當的基礎,基本上做完了。至少代碼可閱讀了。入門了。現在的檔案結構是這樣的:

好看了好多。

好了,我們已經基本排版好了檔案結構以及基本的代碼分布問題。但是,這隻是入門了而已。

下面的就是基於軟體的複雜度需求進行變更的:

1.抽離出來網路請求的部分:

  原因如下:a.網路請求,總會有錯誤返回碼,能方便的增刪查減,代碼更容易找。

       b.網路請求,雖然內建的網路請求也是可以一句話,BLock返回處理結果,但是,要基於自己的商務邏輯進行封裝,一定程度上減少藕合度,提高複用性。

       c.對於特俗的網路請求,例如http的post請求,就需要自己獨立進行封裝資料格式了。

 

2.基於資料的複雜度,進行相應處理,可以添加自己的商務邏輯的資料庫處理操作。可以添加各種自訂類型的資料類。這樣做的好處,也是抽離代碼,減少耦合。

最後上傳一張前人總結的,僅供參考的圖片:

這裡的分類方式真的只能僅供參考,具體情況還要基於實際項目的分析,不能一概而論的。

That‘s all。

iOS軟體開發架構理解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.