从今天开始学习iOS开发(iOS 7版)--实现一款App之使用设计模式
2014-04-02 09:08
1016 查看
使用设计模式可解决常见的软件开发问题,模式是抽象的设计,而不是代码。当你采用一个设计时,你要让它的一般模式适应自己特定的需求。不管你创建的应用是什么类型,知道框架的基本设计模式是很有必要。理解设计模式可以帮你更高效地使用框架,并允许你编写可重复使用、更具扩展性、以及更易改变的应用程序。
MVC
Model-View-Controller (MVC) 对iOS app极为重要。 MVC把app中的对象指定为model、view以及controller三者之一。在该模式中,Model跟踪app的数据,View展示用户界面并构成了app的内容,Controller管理着你的views。
通过响应用户操作和使用内容填充视图,Controller充当了Model和View之间沟通的通道。你已经开始设计你的ToDoList app,那么你已经遵从了以MVC为中心的设计。你在storyboards中创建的界面组成了视图层。
XYZAddToDoItemViewController和XYZToDoListViewController是管理视图的控制器。在Tutorial: Add Data中,you’ll be incorporating a data model to work with the views and controllers in your app.
当你开始设计app时,以MVC为中心进行设计非常重要。
Target-Action
从概念上讲,Target-Action是一个简单的设计模式。当某个特定的事件发生时,一个对象可以在该设计模式中向另一个对象发送消息。 action信息是一个在源码中定义的选择器,target--接受信息对象--是一个有能力执行action的对象,典型代表是view controller。发送行为信息的对象通常是一个控件--比如按钮、滑块儿或者开关--可触发事件以响应用户与界面的交互--比如点击、拖动、或者值变动。
比如,假定你想要恢复app默认设置,无论何时用户点击Restore Defaul按钮(你在用户界面中创建的)。首先,你要实现一个action,restoreDefaults:,来执行恢复默认设置的逻辑。其次,你要登记按钮的Touch Up Inside事件以发送restoreDefaults:行为方法给执行该方法的view controller。
你已经在ToDoList app中使用了target-action模式。当用户在XYZAddToDoItemViewController中点击“Done”按钮,它会触发unwindToList:行为。这种情况下,“Done”按钮就是发送信息的对象,目标对象是XYZToDoListViewController,行为信息是unwindToList:,触发行为信息被发送的事件是用户点击按钮 。Target-action是一个在app不同部分之间定义交互和发送信息的强大机制。
Delegation
Delegation是一个简单但强大的设计模式,app中的对象可以在通过它代理其他对象,或者与其他对象协调。委托对象保持对其他对象的引用--delegate--在适当的时间给它发送一条信息。消息通知委托--委托对象将处理或者已经处理的事件。Delegate可以通过更新自身外观/状态或者app中的其他对象来响应信息。某些情况下它会返回一个影响如何处理即将发生事件的值。
现有的框架类多是Delegate模式,但你也可以在app中的两个自定义对象间执行委托。一般设计把delegation作为一个子视图控制器与其父视图控制器传递值的方法。
你还没有使用过delegation,但在Tutorial: Add Data中,当你为XYZToDoListViewController类添加附加行为时会看到它的一个示例。
以上这些是你在iOS开发过程中最常见的几个设计模式,但是还有很多其他设计模式。随着逐步深入学习Objective-C,你会发现其他可以应用到app中的设计模式。
相关教程: Tutorial: Add Data
原文: Using Design Patterns
MVC
Model-View-Controller (MVC) 对iOS app极为重要。 MVC把app中的对象指定为model、view以及controller三者之一。在该模式中,Model跟踪app的数据,View展示用户界面并构成了app的内容,Controller管理着你的views。
通过响应用户操作和使用内容填充视图,Controller充当了Model和View之间沟通的通道。你已经开始设计你的ToDoList app,那么你已经遵从了以MVC为中心的设计。你在storyboards中创建的界面组成了视图层。
XYZAddToDoItemViewController和XYZToDoListViewController是管理视图的控制器。在Tutorial: Add Data中,you’ll be incorporating a data model to work with the views and controllers in your app.
当你开始设计app时,以MVC为中心进行设计非常重要。
Target-Action
从概念上讲,Target-Action是一个简单的设计模式。当某个特定的事件发生时,一个对象可以在该设计模式中向另一个对象发送消息。 action信息是一个在源码中定义的选择器,target--接受信息对象--是一个有能力执行action的对象,典型代表是view controller。发送行为信息的对象通常是一个控件--比如按钮、滑块儿或者开关--可触发事件以响应用户与界面的交互--比如点击、拖动、或者值变动。
比如,假定你想要恢复app默认设置,无论何时用户点击Restore Defaul按钮(你在用户界面中创建的)。首先,你要实现一个action,restoreDefaults:,来执行恢复默认设置的逻辑。其次,你要登记按钮的Touch Up Inside事件以发送restoreDefaults:行为方法给执行该方法的view controller。
你已经在ToDoList app中使用了target-action模式。当用户在XYZAddToDoItemViewController中点击“Done”按钮,它会触发unwindToList:行为。这种情况下,“Done”按钮就是发送信息的对象,目标对象是XYZToDoListViewController,行为信息是unwindToList:,触发行为信息被发送的事件是用户点击按钮 。Target-action是一个在app不同部分之间定义交互和发送信息的强大机制。
Delegation
Delegation是一个简单但强大的设计模式,app中的对象可以在通过它代理其他对象,或者与其他对象协调。委托对象保持对其他对象的引用--delegate--在适当的时间给它发送一条信息。消息通知委托--委托对象将处理或者已经处理的事件。Delegate可以通过更新自身外观/状态或者app中的其他对象来响应信息。某些情况下它会返回一个影响如何处理即将发生事件的值。
现有的框架类多是Delegate模式,但你也可以在app中的两个自定义对象间执行委托。一般设计把delegation作为一个子视图控制器与其父视图控制器传递值的方法。
你还没有使用过delegation,但在Tutorial: Add Data中,当你为XYZToDoListViewController类添加附加行为时会看到它的一个示例。
以上这些是你在iOS开发过程中最常见的几个设计模式,但是还有很多其他设计模式。随着逐步深入学习Objective-C,你会发现其他可以应用到app中的设计模式。
相关教程: Tutorial: Add Data
原文: Using Design Patterns
相关文章推荐
- 从今天开始学习iOS开发(iOS 7版)--实现一款App之Foundation框架的使用
- 从今天开始学习iOS开发(iOS 7版)--实现一款App之Foundation框架的使用
- 从今天开始学习iOS开发(iOS 7版)--实现一款App之合并数据
- 从今天开始学习iOS开发(iOS 7版)--实现一款App之编写自定义类
- 从今天开始学习iOS开发(iOS 7版)--构建一款App之设计用户界面
- 从今天开始学习iOS开发(iOS 7版)--实现一款App-教程:添加数据
- 从今天开始学习iOS开发(iOS 7版)--构建一款App之App开发过程
- 从今天开始学习iOS开发(iOS 7版)--构建一款App之定义交互
- 从今天开始学习iOS开发(iOS 7版)--构建一款App之教程:串联图
- 从今天开始学习iOS开发(iOS 7版)--下一步之“何去何从”
- 从今天开始学习iOS开发(iOS 7版)--下一步之“查找信息”
- 从今天开始学习iOS开发(iOS 7版)--iOS 技术
- iOS App设计模式开发中对迭代器模式的使用示例
- iOS App开发中使用设计模式中的单例模式的实例解析
- iOS App设计模式开发之适配器模式使用的实战演练
- 从今天开始学习iOS开发(iOS 7版)--iOS 技术
- 从今天开始学习iOS开发(iOS 7版)--介绍--教程:基础
- 从今天开始学习iOS开发(iOS 7版)--介绍
- iOS App使用设计模式中的模板方法模式开发的示例
- iOS App设计模式开发中策略模式的实现示例