2012-01-31 63 views
8

所以我是iOS開發新手,正在盡我所能學習「最好」的方式來做事。 (是的,我知道這是一個相對的術語)來自C#/ Java世界的iOS設計模式等價物?

我來自C#和Java的世界,我們通過IOC容器注入依賴關係,使用存儲庫模式來抽象數據訪問,使用域服務和對象封裝業務數據和行爲等。這些都是我在iOS開發中尚未見到的事情。 (也許我看錯了地方)

我意識到Objective-C是C的超集和一種動態/鬆散類型的語言,當涉及到良好的設計實踐時,它可能會改變遊戲很多。任何人都可以向我指出一些書籍/博客/其他能夠幫助我從強大的類型化管理環境到這個新世界的精神飛躍的方向,同時保持我的設計靈活並遵守SOLID原則?

編輯 - 我想在這裏清楚。我不是在問如何學習Cocoa框架和Objective-C作爲一種語言的來龍去脈。我發現了很多資源。我期待着把這個提升到一個新的水平,開始做TDD並確保我正在構建的項目將會很容易擴展和維護。

+1

我們中的一些人進入iOS開發,擺脫了所有那些企業的廢話。 :) – 2012-01-31 21:22:26

+2

@robmayoff這些類型的東西肯定會過度,但是「廢話」有點苛刻。我們絕對不想回到內部SQL隨處可見的時代,所以我們有一些平衡。爲了保持均衡的方法,你在iOS中改進設計的一些事情是什麼? – 2012-01-31 21:56:16

+0

我認爲,正如亞當所說,你應該先看看蘋果的API。他們的API簡單,簡單,並且非常一致。例如,爲了表示集合,Cocoa有三個類 - 「NSArray」,「NSSet」和「NSDictionary」。將它與Java和一些其他語言作爲標準庫的一部分進行比較。此外,還分別於2011年和2010年簽署了題爲「易於更改代碼編寫」的WWDC會議和「Cocoa和Cocoa Touch API設計」。 – Anurag 2012-02-01 08:48:08

回答

4

學習「最佳」方式來做事的最好方法是儘可能深入地瞭解蘋果現有API的設計。畢竟,不管理論上最好的做法是什麼,最終你的代碼將不得不使用這些API,所以在大多數情況下你應該遵循類似的模式。

就書本而言,有一個名爲可可設計模式涵蓋了這個確切的主題,並基於亞馬遜的審查,似乎很受歡迎。

+0

好的建議。 – JoePasq 2012-02-01 14:59:52

+0

我不確定這會填補我的所有空白,但它似乎是一本很好的書,它會讓我在這條路上走得很遠。謝謝。 – 2012-02-24 22:36:50

1

我建議您關注cs193p課程,並從蘋果網站上閱讀Learning Objective-C

我認爲這兩個鏈接會指向你正確的方向,如何事情應該在iOS上工作。

1

Objective-C和Cocoa開發有很多特定的設計模式,您會在this book中找到一個非常好的摘要。它涵蓋了語言內置模式以及一些更復雜和更高級的(架構如果你喜歡)模式。

一般來說,SOLID原則適用於動態語言,因爲它們屬於強類型語言。另一件事是在Objective-C中,你可以選擇在你的設計中使用強類型,所以幾乎所有的「古典」OOP模式都適用,儘管可能有一些框架/語言結構更加優雅和適合於工作。