码迷,mamicode.com
首页 > 移动开发 > 详细

分享一个BookStore ios程序的例子

时间:2014-09-24 16:15:06      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:jquery   ui   web前端   前端   框架   

经过4天的开发,ios的网络书店基本完成了:

  • 登陆注册
  • 图书列表,下拉放开刷新,下拉到底查看更多,图片异步加载
  • 我的信息,查看订单修改密码
  • 查看图书详情
  • 加入购物车
  • 提交订单
  • sqllite存放浏览日志,定时提交
  • plist文件存放购物车
  • 精心开发5年的UI前端框架!

 架构中最重要的元素:

  1. 模块化,纵向分割
  2. 层次化,横向分割
  3. 抽象和实现分离
  4. 解耦,同构组件如何通讯,异构组件如何通讯
  5. 职责分离

重构中:消除重复代码,消除魔数

BookStore应用虽然简单,但包括的内容不少

bubuko.com,布布扣

bubuko.com,布布扣

 

 

分层架构如下:

  • Resources用于各种资源,比如图片、icon和多语言的文本
  • Core就是业务逻辑层用于管理数据访问层,以及作为数据的容器
    • Controller就是业务逻辑控制器,也可以命名为Service,每一种业务逻辑对应一种控制器
    • Entity就是数据实体,此外还用于description的生成以及序列化控制
  • Data就是数据访问层
    • 其中有本地的数据访问(包括UserDefaults、plist文件以及本地的sqllite)
    • 以及远程的数据访问(http+json)
  • UI就是前端
    • 包括ViewController
    • 对应的View
    • 封装的TableViewCell
    • ViewController之间通讯的协议
  • Utility中包括扩展、常量以及小工具
  • 精心开发5年的UI前端框架!

 

层之间的通讯控制如下:

  • ViewController作为前端入口,直接和Controller通讯,其中VC->C是方法调用,而C->VC是NoficationCenter的消息通知,Controller之间采用的是方法调用
  • ViewController之间的通讯采用的是协议,效率高又可以解耦
  • Controller作为业务逻辑的入口,会调用本地数据访问服务和远程数据访问服务,对于后者BookController到BookService采用的是方法调用,返回采用的是回调Block
  • Service网络层采用异步OperationQueue,异步完成后调用Controller注册的回调方法,回调方法中再发通知,通知ViewController层
  • Service网络层有BaseService封装了网络的通用处理,会直接和BaseViewController进行互动,用于通用的一些等待和错误处理

C层到VC层采用通知,VC层之间采用协议,VC到C层采用方法调用,C到S层采用方法调用,S到C层采用Block回调。精心开发5年的UI前端框架!

 

bubuko.com,布布扣

 

bubuko.com,布布扣

 

bubuko.com,布布扣

 

 

bubuko.com,布布扣

 

 bubuko.com,布布扣

 

  希望不要误导新手,高手路过帮忙看一下有什么可以改进的,特别是架构上。

分享一个BookStore ios程序的例子

标签:jquery   ui   web前端   前端   框架   

原文地址:http://blog.csdn.net/ariss123/article/details/39523551

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!