2012-01-31 62 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模式都适用,尽管可能有一些框架/语言结构更加优雅和适合于工作。