电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

iOS移动平台架构设计

10页
  • 卖家[上传人]:jiups****uk12
  • 文档编号:88918468
  • 上传时间:2019-05-13
  • 文档格式:DOC
  • 文档大小:442.50KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、低耦合企业级系统架构设计我们往往称JavaEE或.Net开发的产品为“系统”,而移动平台(主要是:Android、iOS和WindowPhone)开发的产品为“应用”。“系统”比较复杂,需要架构设计,而“应用”相对比较简单,这是不是意味着我们不需要考虑架构问题呢?我们首先了解一下企业级系统架构设计。软件设计的原则是提高软件系统的“可复用性”和“可扩展性”,系统架构设计采用层次划分方式,这些层次之间是 松耦合的,层次的内部是高内聚的。降低耦合是软件设计的目标,能够设计出低耦合的系统,就意味着我们的系统具有“可复用性”和“可扩展性”。通用低耦合 JavaEE和.Net企业级系统架构图。表示层是用户与系统交互的组件集合,用户通过这一层向系统提交请求或发出指令,系统通过这一层接收用户请求或指令,然后,将指令消化吸收后调用下一层,再将调用的结果展现到这一层。表示层应该是轻薄的不应该具有业务逻辑。业务层是系统的核心业务处理层,负责接收表示层的指令和数据,消化吸收后,进行组织业务逻辑的处理,并将结果返回给表示层。数据持久层是服务层用于访问数据库层,从设计规范上讲为了降低耦合度,服务层不应该具有访问数

      2、据库的代码,访问数据库的代码应该放到数据持久层中。信息系统层,是系统的数据来源,可以是数据库、文件、遗留系统和网络数据。移动平台的分层架构设计移动平台的应用是缩小版本的系统,它也需要架构设计,但并非所有的应用都一定基于通用低耦合企业级系统架构,一般而言主要是涉及信息处理的应用才使用这种架构设计模式,例如:一些游戏有自己的游戏引擎,引擎也属于架构设计。iOS平台一般信息处理应用分层架构设计图。表示层,iOS中的表示层是由UIKitFramework构成的,它包括我们前面学习的视图、控制器、控件和事件处理等内容;业务逻辑层,采用什么框架要据具体的业务而定,但一般是具有一定业务处理功能的Objective-C和C+封装的类,或者是C封装的函数。中国返利网 艺尚网数据持久层,提供本地或网络数据访问,它可能是访问SQLite数据API函数,也可能是CoreData技术,或是访问文件的NSFileManager,或是网络通信等技术,采用什么方式要看信息系统层是什么。信息系统层,就iOS而言它的信息来源分为:本地和网络。本地数据可以放入文件中也可以放在数据库中,目前iOS本地数据库采用SQLite3

      3、。网络可以是某个云服务,也可以是一般的Web服务。基于同一工程的分层架构对于我们iPhone和iPad开发有着很现实的意义。如果我们要编写一个基于iOS(iPhone和iPad两个平台)“My备忘录”应用, 它具有:增加、删除和查询备忘录的基本功能,“备忘录”应用用例图,分层设计之后,表示层可以有不同iPhone版和iPad版本,而且业务逻辑层、数 据持久层和信息系统层都可以公用。这样可以大大减少我们的工作量,这就是分层设计的好处。iOS考虑iPhone和iPad两个平台,我们绘制了设计原型草图,iPhone版本的“My备忘录”应用设计原型草图。iPad版本的“My备忘录”横屏设计原型草图,iPad版本的“My备忘录”竖屏设计原型草图。在iOS平台分层的具体做法有多种模式:基于同一工程的分层、基于一个工作空间不同工程的分层和静态链接库分层。本小节介绍基于同一工程的分层。我们在前文中已经介绍了构建自适应iPhone和iPad工程,就是我们现在要讲的基于同一工程的分层模式。请读“备忘录”应用的代码,实现过程这 里不做介绍,打开“MyNotes”工程,在Xcode工程导航面板有3个组:Pre

      4、sentationLayer、 BusinessLogicLayer和PersistenceLayer。创建这3个组的目的是把不同层中类放到对应的组中便于管 理,PresentationLayer是放置的表示层相关类,BusinessLogicLayer是放置的业务逻辑层的相关 类,PersistenceLayer是放置持久层相关类。各个层的下面再如何划分呢?我们可以按照业务模块划分,也可以按照组件功能划分。本应用中PersistenceLayer层就还要分成dao和 domain两个组,dao是放置数据访问对象的,该对象中有对数据访问的CRUD四类方法,为了降低耦合度dao一般要设计成为协议(或Java接 口),然后根据不同的数据来源采用不同的实现方式。domain组是实体类,实体是应用中的“人”、“事”、“物”等。dao组中NoteDAO.h代码如下:interface NoteDAO : NSObject/保存数据列表property (nonatomic,strong) NSMutableArray* listData;+ (NoteDAO*)sharedManager;/插入

      5、Note方法-(int) create:(Note*)model;/删除Note方法-(int) remove:(Note*)model;/修改Note方法-(int) modify:(Note*)model;/查询所有数据方法-(NSMutableArray*) 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 once;dispatch_once(&once, NSDateFormatter *dateFormatter = NSDateFormatter alloc

      6、 init;dateFormatter setDateFormat:yyyy-MM-dd HH:mm:ss;NSDate *date1 = dateFormatter dateFromString:2010-08-04 16:01:03;Note* note1 = Note alloc init;note1.date = date1;note1.content = ”Welcome to MyNote.”;NSDate *date2 = dateFormatter dateFromString:2011-12-04 16:01:03;Note* note2 = Note alloc init;note2.date = date2;note2.content = ”欢迎使用MyNote。”;sharedManager = self alloc init;sharedManager.listData = NSMutableArray alloc init;sharedManager.listData addObject:note1;sharedManager.listData addObj

      7、ect:note2;);return sharedManager;/插入Note方法-(int) create:(Note*)modelself.listData addObject:model;return 0; /删除Note方法-(int) remove:(Note*)modelfor (Note* note in self.listData) /比较日期主键是否相等if (note.date isEqualToDate:model.date)self.listData removeObject: note;break;return 0; /修改Note方法-(int) modify:(Note*)modelfor (Note* note in self.listData) /比较日期主键是否相等if (note.date isEqualToDate:model.date)note.content = model.content;break;return 0; /查询所有数据方法-(NSMutableArray*) findAllreturn self.listData; /按照

      8、主键查询数据方法-(Note*) findById:(Note*)modelfor (Note* note in self.listData) /比较日期主键是否相等if (note.date isEqualToDate:model.date)return note;return nil;endNoteDAO实现采用了单例设计模式,这种设计与DAO设计模式没有关系,这主要是出于访问数据的方便。数据放置在listData属性中(本应该是从数据库中的,但是数据库访问技术我们还没有学习),CRUD方法也都是对listData的处理,而非数据库。domain组中Note代码如下,它只有两个属性date是创建备忘录的日期,content是备忘录内容:/ Note.h#import interface Note : NSObjectproperty(nonatomic, strong) NSDate* date;property(nonatomic, strong) NSString* content;end/ Note.m#import ”Note.h”implementation Noteend/ Note.h#import interface Note : NSObjectproperty(nonatomic, strong) NSDate* date;property(nonatomic, strong) NSString* content;end/ Note.m#import ”Note.h”implementation Noteend业务逻辑层BusinessLogicLayer中的类的设计一般是按照业务模块设计的,它的方法是业务处理方法,下面代码是NoteBL.h代码:interface NoteBL : NSObj

      《iOS移动平台架构设计》由会员jiups****uk12分享,可在线阅读,更多相关《iOS移动平台架构设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.