2012-05-10 50 views
0

也許這是一個愚蠢的問題,但我想知道什麼時候我們需要或什麼時候推薦創建新課程。這在我看來並不是很清楚。現在,我每個控制器只有一個類,就是這樣...我所有的代碼都在這個類中。 我認爲這可能是更好的... ...創建新課程時?

問候

+4

這將取決於具體情況,您需要發佈具體示例,以便這裏的人可以給出建議。 –

+0

我沒有例子。這只是一般知道 – Benjamin

回答

3

如果你遵循MVC模式,爲您的類應該分離到這些類別的一個大部分:

  • 控制器:UIKit/NS視圖控制器,負責呈現視圖並接收來自這些視圖上交互元素的消息。
  • 觀看次數:如果您的某個控制器所呈現的視圖需要大量自定義邏輯才能呈現出來,那麼將它分成它自己的類可能是一個更好的主意。實質上,這是在使用Interface Builder創建視圖時完成的(.xib文件)。
  • Models:封裝應用程序邏輯的對象。

例如,如果你按照這種設計模式建立一個RSS閱讀器,你很可能做出以下類:代表一個單獨的RSS項目

  • 模型,以及一個代表一個RSS提要。如果您推出自己的RSS提要解析器,則您需要隔離在另一個類中提取條目所需的邏輯。
  • 控制器來處理顯示飼料和個人意見。控制者應該只關心呈現數據。對於iOS上的RSS查看器,您可能會使用UINavigationControllerUITableViewController類的根視圖控制器。點擊表格單元會推動另一個負責顯示單個RSS項目的UIViewController
  • 雖然UITableController有一個默認視圖來顯示項目列表,但單個項目可能需要自定義邏輯才能正確顯示。您可能想創建一個視圖類或.xib來呈現這些。 UIViewController負責在視圖上填充數據(設置IBOutlets上的值.xib等)。

作爲一般原則,應該儘量堅持single responsibility principle --every類應該有一個責任,它可以或多或少地自主執行任務。

在這種情況下,控制器負責處理單個類型視圖的顯示以及從該視圖中委託消息。視圖負責顯示數據。模型負責爲其創建的單一用途 - 用於將數據從RSS提要映射到對象的RSS項目,用於管理一組RSS項目的RSS提要對象(添加,刪除,可能通過NSURLRequest提取更多內容) 。

注意:根據Stack Overflow guidelines您的問題有點含糊,所以這可能是爲什麼它被低估。考慮添加一個具體的例子或描述你面臨的困境。

+0

非常感謝這個完整的答案 – Benjamin