构建一款App之使用设计模式

本文介绍了iOS开发中常用的三种设计模式:MVC、Target-Action和Delegation,详细解释了它们的概念、作用以及在实际开发中的应用,帮助开发者更高效地使用框架,构建具有高扩展性和易修改性的应用程序。

使用设计模式可解决常见的软件开发问题,模式是抽象的设计,而不是代码。当你采用一个设计时,你要让它的一般模式适应自己特定的需求。不管你创建的应用是什么类型,知道框架的基本设计模式是很有必要。理解设计模式可以帮你更高效地使用框架,并允许你编写可重复使用、更具扩展性、以及更易改变的应用程序。 

 
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中的设计模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值