2014-02-10 25 views
0

這個問題可能適用於所有的語言和框架,但我正在尋找更多'可可專用'的東西。我來自Java背景,我注意到學習Objective-C不僅僅是語法,它幾乎是一種完全不同的思維方式。在可可應用程序中組織你的課

我一直遇到的最大麻煩,必須是人們組織班級的方式。確保所有基本的OOP(面向對象編程)規則都適用,並且在建議的地方使用MVC模式。但是隨着我習慣於Java,我只需要設置一些東西,並確保我有正確的想法:

所以爲了簡單起見,我們只關注應用程序的一部分 - 記錄用戶你會得到你的用於UI的.xib文件(稱爲Login.xib),你需要你的類來處理你的數據(連接到一個名爲LoginModel.m的Web服務),你會得到你的控制器充當您的前端和數據之間的中間人(稱爲LoginController.m)。

這是將MVC應用到Cocoa應用程序的一個很好的例子嗎?如果是這樣,這是否意味着您將爲此創建6個文件(因爲您有頭文件和實現文件)。 6文件只是爲了處理一些簡單的事情,就像登錄用戶一樣。你可以想象有多少人最終會得到整個應用程序,即使是最簡單的應用程序......

所以我的問題是 - 我在做什麼有問題?我有錯誤的想法嗎?或者是太多的文件和太長的方法名稱的想法,只是我需要習慣,因爲我的大腦仍然在'Java模式'中工作?

回答

1

關於如何處理上述問題的想法完全正確。項目中有很多文件沒有什麼不好。當你想要重用代碼或者例如登錄細節發生變化並且你不想編輯多個代碼位置時,它確實有幫助。儘管如此,您可以將這些簡單情況下的模型類和控制器類組合起來,尤其是如果您的模型數據可以存儲在NSDictionary等中。只有當你有複雜的模型對象時,它纔會運行很多自己的代碼,將它們分離出來會更好。

變量和方法名稱不能太長;)總是使用一個很好的名稱來描述功能或任務。您通常不必經常鍵入它們,但Xcode自動完成將輕鬆處理。

+0

感謝您的回答,我現在對自己的能力感到更加自信:D。我用於當前項目的數據完全用REST webservices完成,它返回json,然後可以輕鬆地將其解析爲NSDictionaries。那麼在這種情況下,您同意我可以將我的模型和控制器結合起來? 另外,命名約定在MVC obj-c?命名我的類LoginController和LoginModel例如不是..皺眉了? – Tiwaz89

+1

我絕對會將JSON數據存儲在一個'NSDictionary'中。爲您提供足夠的數據處理能力。關於命名:雖然你的類名沒問題,但我會考慮添加一個前綴。例如,我使用導致VRxxxx的我的啓動或其他情況下應用程序名稱的一部分。我的一些應用程序名稱以bcXXX開頭,所以我使用BC作爲前綴。 – Volker