2009-10-24 43 views
3

在設計我的應用程序時,我應該擁有多少個控制器?爲整個應用程序,整個窗口或每個班級設置一個控制器是否是好習慣?此外,在Interface Builder的文檔窗口中創建了多少個對象。教程通常有一個叫做AppController。完整的應用程序通常具有App Controller或n * XYZController嗎?可可應用程序中有多少種控制器類是典型的?

回答

4

在非基於文檔的應用程序中,每個窗口一個。我只談論自己編寫的控制器,而不是窗口控制器,視圖控制器,對象控制器,陣列控制器,樹形控制器或字典控制器。 (請注意,有些人確實將自定義控制器設置爲NSWindowController。)我也不計算擁有根控制器的應用程序委託。

在單窗口應用程序中,通常意味着一個自定義控制器。

在基於文檔的應用程序中,通常根本不寫控制器,而是編寫一個或多個NSDocument子類 - 每個文檔類型一個。每個文檔對象通常只擁有一個窗口。

無論您正在編寫什麼樣的應用程序,您可能還想爲任​​何浮動實用程序面板(例如Inspector)製作控制器,儘管您應該考慮以下替代方案:使面板成爲自己的面板控制器,就像NSFontPanel和NSColorPanel一樣。

1

每個窗口一個,正如Peter Hosey所說的那樣,不是一個壞的策略,但是一個人的窗口是另一個女人的子視圖。我更喜歡在功能集羣中思考:如果需要完成兩個或更多相關的事情,他們可能需要一個控制器。

但是,這是至關重要的,你必須要能夠想到一個好名字的控制器:importController,或textFilesImportController或externalFilesDisplayController的名字是明確什麼特定的控制器會做不會做。

如果您無法爲控制器想出一個好名字,請將其作爲您不需要它的標誌,或者您對設計仍不清楚。在這種情況下,您可以選擇將其稱爲您的whateverController,直到您的下一個見解閃現出現爲止。

相關問題