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

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

 
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中的设计模式。

你可能感兴趣的:(构建一款App之使用设计模式)