iOS移动平台架构设计.doc
《iOS移动平台架构设计.doc》由会员分享,可在线阅读,更多相关《iOS移动平台架构设计.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、低耦合企业级系统架构设计我们往往称JavaEE或开发的产品为“系统”,而移动平台(主要是:Android、iOS和WindowPhone)开发的产品为“应用”。“系统”比较复杂,需要架构设计,而“应用”相对比较简单,这是不是意味着我们不需要考虑架构问题呢?我们首先了解一下企业级系统架构设计。软件设计的原则是提高软件系统的“可复用性”和“可扩展性”,系统架构设计采用层次划分方式,这些层次之间是 松耦合的,层次的内部是高内聚的。降低耦合是软件设计的目标,能够设计出低耦合的系统,就意味着我们的系统具有“可复用性”和“可扩展性”。通用低耦合 JavaEE和企业级系统架构图。表示层是用户与系统交互的组件
2、集合,用户通过这一层向系统提交请求或发出指令,系统通过这一层接收用户请求或指令,然后,将指令消化吸收后调用下一层,再将调用的结果展现到这一层。表示层应该是轻薄的不应该具有业务逻辑。业务层是系统的核心业务处理层,负责接收表示层的指令和数据,消化吸收后,进行组织业务逻辑的处理,并将结果返回给表示层。数据持久层是服务层用于访问数据库层,从设计规范上讲为了降低耦合度,服务层不应该具有访问数据库的代码,访问数据库的代码应该放到数据持久层中。信息系统层,是系统的数据来源,可以是数据库、文件、遗留系统和网络数据。移动平台的分层架构设计移动平台的应用是缩小版本的系统,它也需要架构设计,但并非所有的应用都一定基
3、于通用低耦合企业级系统架构,一般而言主要是涉及信息处理的应用才使用这种架构设计模式,例如:一些游戏有自己的游戏引擎,引擎也属于架构设计。iOS平台一般信息处理应用分层架构设计图。表示层,iOS中的表示层是由UIKitFramework构成的,它包括我们前面学习的视图、控制器、控件和事件处理等内容;业务逻辑层,采用什么框架要据具体的业务而定,但一般是具有一定业务处理功能的Objective-C和C+封装的类,或者是C封装的函数。中国返利网 艺尚网数据持久层,提供本地或网络数据访问,它可能是访问SQLite数据API函数,也可能是CoreData技术,或是访问文件的NS,或是网络通信等技术,采用什
4、么方式要看信息系统层是什么。信息系统层,就iOS而言它的信息来源分为:本地和网络。本地数据可以放入文件中也可以放在数据库中,目前iOS本地数据库采用SQLite3。网络可以是某个云服务,也可以是一般的Web服务。基于同一工程的分层架构对于我们iPhone和iPad开发有着很现实的意义。如果我们要编写一个基于iOS(iPhone和iPad两个平台)“My备忘录”应用, 它具有:增加、删除和查询备忘录的基本功能,“备忘录”应用用例图,分层设计之后,表示层可以有不同iPhone版和iPad版本,而且业务逻辑层、数 据持久层和信息系统层都可以公用。这样可以大大减少我们的工作量,这就是分层设计的好处。i
5、OS考虑iPhone和iPad两个平台,我们绘制了设计原型草图,iPhone版本的“My备忘录”应用设计原型草图。iPad版本的“My备忘录”横屏设计原型草图,iPad版本的“My备忘录”竖屏设计原型草图。在iOS平台分层的具体做法有多种模式:基于同一工程的分层、基于一个工作空间不同工程的分层和静态链接库分层。本小节介绍基于同一工程的分层。我们在前文中已经介绍了构建自适应iPhone和iPad工程,就是我们现在要讲的基于同一工程的分层模式。请读“备忘录”应用的代码,实现过程这 里不做介绍,打开“MyNotes”工程,在Xcode工程导航面板有3个组:PresentationLayer、 Bus
6、inessLogicLayer和PersistenceLayer。创建这3个组的目的是把不同层中类放到对应的组中便于管 理,PresentationLayer是放置的表示层相关类,BusinessLogicLayer是放置的业务逻辑层的相关 类,PersistenceLayer是放置持久层相关类。各个层的下面再如何划分呢?我们可以按照业务模块划分,也可以按照组件功能划分。本应用中PersistenceLayer层就还要分成dao和 domain两个组,dao是放置数据访问对象的,该对象中有对数据访问的CRUD四类方法,为了降低耦合度dao一般要设计成为协议(或Java接 口),然后根据不同的数
7、据来源采用不同的实现方式。domain组是实体类,实体是应用中的“人”、“事”、“物”等。dao组中NoteDAO.h代码如下:interface NoteDAO : NSObject/保存数据列表property (nonatomic,strong) NSMutableArray* listData;+ (NoteDAO*)sharedManager;/插入Note方法-(int) create:(Note*)model;/删除Note方法-(int) remove:(Note*)model;/修改Note方法-(int) modify:(Note*)model;/查询所有数据方法-(NSM
8、utableArray*) findAll;/按照主键查询数据方法-(Note*) findById:(Note*)model;endlistData属性用于保存数据表中的数据,其中每一个元素都是Note对象,一个Note对象代表数据表中的一条数据。+(NoteDAO*)sharedManager方法用于获得NoteDAO单例对象。dao组中NoteDAO.m代码如下:implementation NoteDAO中国返利网 艺尚网static NoteDAO *sharedManager = nil;+ (NoteDAO*)sharedManagerstatic dispatch_once_t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- iOS 移动 平台 架构 设计
限制150内