您的位置:首页 > 移动开发 > IOS开发

从今天开始学习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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: