《MonoTouch开发实践指南》一3.1 构建MonoTouch MVC应用程序

简介: 本节书摘来自华章出版社《MonoTouch开发实践指南》一 书中的第3章,第3.1节,作者:(美)Michael Bluestein,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.1 构建MonoTouch MVC应用程序

使用UIKit的MonoTouch应用程序通常都使用UIView和UIViewController来构建。这些都是用于构建模型-视图-控制器(Model-View-Controller,MVC)设计模式的iOS应用程序的主要类。
将应用程序的特定领域(Domain Specific)信息和应用程序的显示分离开来,通常会给应用程序带来好处。这种设计模式可以帮助开发人员在面对不断变化的功能需求时保持基础代码的稳定,有助于促进代码重用,并使构建单元测试的代码质量更好。MVC模式就是这样一种模式,是许多应用程序开发方案的常用模式。尤其是,CocoaTouch和MonoTouch都要用到大部分API中的MVC设计模式,所以花点时间来学习(复习)MVC及如何在MonoTouch中使用它是值得的。
MVC模式源自20世纪70年代末Trygve Reenskaug在施乐帕罗奥多研究中心(Xerox PARC)所做的工作,它将模型捕获的特定领域信息与给用户显示的信息分离开来。用户通常是指使用应用程序的人,但也可以是其他东西,如与脚本交互的另一个应用程序。在后一种情况中,脚本就是视图,它负责显示模型。对于iOS应用程序,视图就是用于人机交互的用户界面。如图3-1所示,MVC设计模式的关键是在视图与模型之间互相保持抽象。这种抽象通过“控制器”作为中介。控制器为模型和视图提供了一个中间层以使它们能够相互独立。
在第2章的示例中,并没有明确地创建控制器,只是简单地把AppDelegate作为控制器,这对于简单的演示没有问题,但通常将视图的控制器作为独立的类,专门作为视图的控制器。另外,不要让视图控制器做太多的工作(如支持多种不同类型的顶层视图),这样的超级控制器会导致在应用程序中出现紧耦合,使应用程序难于维护。
在UIKit中,屏幕上的一切都是视图。控制器有单个顶层视图,在视图里面可以添加按钮、标签、滑块等的子视图。视图负责显示和事件捕获,如前面的UIButton的TouchUpInside事件。但是,视图不会做任何事件处理,事件处理是由控制器负责的。
视图也没有其显示数据。例如,可以直接在代码中使用UITextField的文本。但是,这不是正确的MVC做法。视图只负责显示数据。如果将视图与数据耦合,那会让代码难于维护。例如,如果增加需求,要在另一个视图的标题(title)属性中显示相同的文本又会怎么样呢?如果视图拥有数据,就必须耦合该标题的视图与标签。接着又有了另一个需求,要删除第一个视图。这样做,标题的显示就会出现问题。即使这么一点不起眼的地方,也会因为一时顺手而出现问题。好的设计就是将字符串分离出来,或者作为独立的字符串,或者作为一个大类的属性,或者作为模型,让控制器作为模型和视图之间传输数据的中介。
将视图通过控制器从模型中分离出来,使代码更易于调试和重用。使用MonoTouch,可重用这点不容小觑。如果目标是多平台,就要保证模型和支持类与使用平台无关。第9章会更深入地探讨设计模式中代码重用问题。
由于视图和控制器是唯一的平台问题(在目前iOS这种情况下),所以要了解它们是如何工作的,以及如何使用工具在IB中或直接在代码中创建视图和控制器。

相关文章
|
5月前
|
设计模式 存储 前端开发
MVC(Model-View-Controller)是一种软件设计模式,用于将应用程序的输入逻辑、业务逻辑和用户界面逻辑分离
【6月更文挑战第17天】**MVC模式**是软件设计模式,用于分离输入逻辑、业务逻辑和用户界面。模型处理数据和业务,视图展示数据,控制器协调两者响应用户请求。优点包括:关注点分离、提高开发效率、简化测试、支持多视图及便于大型项目管理。
52 3
|
4月前
|
设计模式 前端开发 数据库
深入理解MVC设计模式:构建高效Web应用程序的基石
【7月更文挑战第4天】在软件工程领域,设计模式是解决常见问题的一系列经过验证的方法。其中,Model-View-Controller(MVC)设计模式自诞生以来,便成为了构建用户界面,特别是Web应用程序的黄金标准。MVC通过将应用程序逻辑分离为三个核心组件,提高了代码的可维护性、可扩展性和重用性。本文将深入探讨MVC设计模式的原理,并通过一个简单的代码示例展示其应用。
167 0
|
6月前
|
前端开发 Java 测试技术
Java一分钟之Spring MVC:构建Web应用
【5月更文挑战第15天】Spring MVC是Spring框架的Web应用模块,基于MVC模式实现业务、数据和UI解耦。常见问题包括:配置DispatcherServlet、Controller映射错误、视图解析未设置、Model数据传递遗漏、异常处理未配置、依赖注入缺失和忽视单元测试。解决这些问题可提升代码质量和应用性能。注意配置`web.xml`、`@RequestMapping`、`ViewResolver`、`Model`、`@ExceptionHandler`、`@Autowired`,并编写测试用例。
339 3
|
2月前
|
前端开发 安全 Java
技术进阶:使用Spring MVC构建适应未来的响应式Web应用
【9月更文挑战第2天】随着移动设备的普及,响应式设计至关重要。Spring MVC作为强大的Java Web框架,助力开发者创建适应多屏的应用。本文推荐使用Thymeleaf整合视图,通过简洁的HTML代码提高前端灵活性;采用`@ResponseBody`与`Callable`实现异步处理,优化应用响应速度;运用`@ControllerAdvice`统一异常管理,保持代码整洁;借助Jackson简化JSON处理;利用Spring Security增强安全性;并强调测试的重要性。遵循这些实践,将大幅提升开发效率和应用质量。
64 7
|
5月前
|
JSON 前端开发 Java
Springboot mvc开发之Rest风格及RESTful简化开发案例
Springboot mvc开发之Rest风格及RESTful简化开发案例
63 2
|
6月前
|
存储 JSON 前端开发
利用Spring MVC开发程序2
利用Spring MVC开发程序
49 1
|
6月前
|
前端开发 JavaScript 开发者
深入理解MVC和MVVM:构建现代Web应用的利器
深入理解MVC和MVVM:构建现代Web应用的利器
|
6月前
|
设计模式 存储 前端开发
Java的mvc设计模式在web开发中应用
Java的mvc设计模式在web开发中应用
|
6月前
|
设计模式 JSON 前端开发
利用Spring MVC开发程序1
利用Spring MVC开发程序
57 0
|
6月前
|
存储 设计模式 前端开发
怎么根据MVC开发规则进行开发
MVC开发规则,也称为MVC设计模式,是软件工程中一种常用的架构模式,用于将应用程序划分为三个主要组成部分:模型(Model)、视图(View)和控制器(Controller)。这种架构模式有助于将应用程序的逻辑、数据和用户界面分离,使代码更加清晰、可维护,并且提高了应用程序的灵活性。
54 2