iOS 精簡Controlelr代碼的兩個方法

來源:互聯網
上載者:User

標籤:bind   mvvm   代碼複用   .com   出現   voc   tableview   情況   複用   

MVC是蘋果推薦使用的iOS APP架構。後來又有MVVM,MVP等架構出現。主要目的是讓商務邏輯、展示、資料各個層級解耦。實現最大程度上的代碼複用。

對MVC這種架構來說,隨著APP中模的增多,控制器中的商務邏輯會越來越複雜,代碼量會越來越多。一個檔案有幾千行也很常見。這時候就算打上mark找方法也是很費時間的事兒。

針對這種情況,我們可以把不必要的代碼分離出來,如View及其子控制項的構建,UITableView,UICollectionView的DataSource方法都可以單獨另起一個類。

1、view層的構建可以放到一個分來中來實現。也可以用介面+訊息轉寄第二步(forwardtarget:forSelector:)來實現。

2、DataSource的方法可以用訊息轉寄的第三步,forwardInvocation:把方法實現都轉移到另一個類中。UITableViewDelegate的方法為什麼不也由其他方法來實現呢?

  其實也是可以的,但是UITableViewDelegate 有點擊事件,最好是放到Controller裡來實現,這種事件響應最好由控制器來做。

demo:

https://github.com/wjwdive/BindViewTest

 

iOS 精簡Controlelr代碼的兩個方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.