- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
iOS通用社交型App架构设计
kallen
博看文思·广州
目录
?社交型App共性需求
讨论社交型App的公共需求。着重讨论优秀社交App几大不可缺少的模块。
?社交型App软件设计方案
讨论社交型App软件设计的原则和方案。在遵循原则的基础上,讨论社交型App的通用设计方案。
?App数据流向
讨论App的数据流向,通过数据流向,验证社交型App软件设计方案
?也说App框架设计
讨论App的架构设计思路。
通用社交型App需求分析
数据
数据解析
网络
网络请求
UI
UI
数据
数据缓存
社交型App软件设计原则
高内聚低耦合可扩展性
高内聚
低耦合
可扩展性
简单性原则
社交型App软件设计方案
模块化设计
数据流向
网络请求
网络请求
数据解析
数据解析
缓存
缓存
UI
UI
缓存
缓存
UI
UI
也说App架构设计
软件架构描述的对象是直接构成系统的抽象模块。各个模块之间的连接则明确和相对细致地描述模块之间的通讯。
在实现阶段(面向对象的开发),这些抽象模块被细化为实际的模块,比如具体某个类或者对象。在面向对象的开发过程中,模块之间的连接通常用接口来实现。(IOS中多用协议-代理)
案例分析-土豆视频
网络请求模块设计
网络请求模块通过预先定义的消息(方法)请求服务器的接口,完成对服务器数据的下载。
土豆视频网络请求模块的设计是基于ASI,对ASI进行封装。
核心消息的定义如下:
-(void)callAPI:(NSString*)aAPI
WithParams:(NSDictionary*)aParams;
优势:
摒弃了iOS协议代理传值!
案例分析-土豆视频
网络解析模块设计
网络解析模块针对网络请求模块下载的数据进行解析,解析成目标设备需要的数据。
土豆视频网络解析模块的设计是基于GData。实现根据实体类自动解析。
核心消息的定义如下:
-(id)superParser;
-(id)parser:(GDataXMLElement*)aElement;
优势:
利用虚函数,把共同的部分交给父类处理,不同的部分交给子类处理。利于团队合作。
案例分析-土豆视频
缓存模块设计
为了给用户更好的体验,我们需要在有网络的情况下,把数据缓存起来。当用户没有网络可用的时候,
我们需要提取缓存数据给用户浏览。
//TODO:开发者设计
QA
Thank
TheEnd
文档评论(0)