构建一款App之使用设计模式
来源:互联网 发布:淘宝全球购的要求 编辑:程序博客网 时间:2024/05/22 06:30
使用设计模式可解决常见的软件开发问题,模式是抽象的设计,而不是代码。当你采用一个设计时,你要让它的一般模式适应自己特定的需求。不管你创建的应用是什么类型,知道框架的基本设计模式是很有必要。理解设计模式可以帮你更高效地使用框架,并允许你编写可重复使用、更具扩展性、以及更易改变的应用程序。
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中的设计模式。
0 0
- 构建一款App之使用设计模式
- 设计模式之构建Builder
- 从零开始设计一款APP之如何做原型图
- 设计模式学习之构建者模式
- 《Java设计模式》之构建者模式
- Java设计模式之构建者模式
- 设计模式之构建者模式
- 设计模式之构建者Builder模式
- 设计模式之Builder构建者模式
- 一款APP,从设计稿到切图
- 一款APP,从设计稿到切图
- 一款APP,从设计稿到切图
- Builder设计模式之构建万能Dialog
- 使用MVVM设计模式构建WPF应用程序
- 使用MVVM设计模式构建WPF应用程序
- JAVA设计模式之——构建者设计模式
- 设计模式-构建模式
- 程序设计策略(设计一款APP的步骤)
- 开始写博客了
- 局部变量与全局变量区别,栈、堆和静态存储区的区别
- (基于Java)算法之最坏情况下的线性时间选择
- Python 的拷贝
- 0-2编译打包wordcount例子
- 构建一款App之使用设计模式
- php 简单并查集实现
- 照书写了个贪吃蛇,可是一按方向键就退出,求教!
- linux下编译C++工程入门
- 关于媒体对于XP退役一事的各种观点:装疯卖傻究竟给谁看呢?
- linux别名alias的设置
- SAP MM库存盘点流程
- ubuntu 下面怎么查看本机ip
- 写android自动化测试脚本命令