`
agevs
  • 浏览: 70290 次
  • 来自: 北京
博客专栏
924aba1e-229a-352e-b6d4-f15f3159a438
各种Web前端技巧经验分享...
浏览量:0
文章分类
社区版块
存档分类
最新评论

分享一个BookStore ios程序的例子

阅读更多

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

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

 架构中最重要的元素:

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

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

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

 

 

分层架构如下:

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

 

 

 

 

 

 

 

 

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

分享到:
评论
1 楼 peng13123 2014-09-19  
博主,资源呢

相关推荐

    ios bookstore

    在iOS平台上,构建一个类似书架的应用,如“ios bookstore”,涉及到多个技术层面,包括UI设计、动画效果、数据管理以及用户体验优化等。这个应用的核心功能是展示书籍,并且提供了分页和翻页的特效,这使得用户在...

    Mule2.2 BookStore例子学习

    在这个例子中,你可能需要使用Mule Studio来创建和部署BookStore应用。 8. **监控和调试**:利用Mule的监控工具,如Mule Management Console(MMC),实时查看应用的运行情况,进行故障排查和性能优化。 9. **源码...

    要求: 在数据库创建一个名为BookStore的数据库,在BookStore数据库中添加一个BookInfo表用于存储图书信息表

    在数据库创建一个名为BookStore的数据库,在BookStore数据库中添加一个BookInfo表用于存储图书信息表,再往表里面添加一些测试数据、前端页面以表格形式显示所有图书信息、并完成增加添加书籍、修改书籍、删除书籍的...

    bookStore.rar书城例子。

    本文将深入探讨"bookStore.rar"提供的网上书城示例,它是一个基于JSP(JavaServer Pages)技术构建的电子商务平台。该系统实例旨在为开发者提供一个可以直接在Eclipse环境中运行的参考项目,以帮助学习者理解和掌握...

    bookStore_bookstore_

    该项目名为"bookStore_bookstore_",是一个基于Java Web技术实现的图书购买系统。虽然它相对简单且未完全开发完毕,但仍然可以为我们提供一个理解Web应用开发的基础框架。以下是关于该项目的一些核心知识点: 1. **...

    bookstore

    "bookstore"这一主题,暗示着我们即将探讨的是一个关于在线书店的应用程序或者系统。这个系统是基于著名的"petstore"进行改进的,意味着它借鉴了宠物商店应用的架构和设计,但针对书籍销售进行了优化和定制。 在...

    网上书店bookstore创建

    本项目“网上书店bookstore创建”就是一个基于Hibernate框架的Web应用程序开发实例,旨在提供用户友好的在线购书体验。下面将详细介绍 Hibernate 的使用以及在创建网上书店时的相关知识点。 **一、Hibernate 框架**...

    bookstore,SSH整合

    这个"bookstore"项目可能是一个示例或教程,用于演示如何在实际开发中将这些框架有效地结合在一起,创建一个完整的Web应用程序。现在让我们深入探讨SSH整合及其在"bookstore"项目中的应用。 **Spring框架** 是一个...

    j2ee struct2 架构下 bookstore

    在Java企业级应用开发中,`J2EE`(Java 2 Platform, Enterprise Edition)是一个标准平台,用于构建可扩展且具有高度安全性的分布式应用程序。`Struts2`是基于`MVC`(Model-View-Controller)设计模式的一个开源框架...

    bookstore-master_nightuju_bookstore-master_bookstoremaster_books

    【标题】"bookstore-master_nightuju_bookstore-master_bookstoremaster_books" 提示我们这是一个关于书店管理系统的项目,由用户 "nightuju" 创建或维护,可能包含多个版本迭代,其中"bookstoremaster"可能是项目的...

    BookStore源码

    首先,"BookStore源码"是一个完整的Java Web项目,基于Servlet和JSP技术,可能还涉及了MVC设计模式。MVC模式将应用程序分为Model(模型)、View(视图)和Controller(控制器)三个部分,使得代码结构清晰,易于维护...

    jsp bookstore

    `jsp bookstore`项目是一个基于JSP的图书管理系统,它允许用户浏览、搜索和购买书籍。在这个系统中,JSP与Servlet、数据库(如MySQL)以及HTML、CSS和JavaScript等前端技术相结合,提供了一个功能完善的线上购书平台...

    BookStore:Book Store Web应用程序。 使用Node,Express,Angular和MongoDB。 使用RESTful API服务器支持CRUD功能

    MEAN堆栈Web应用程序。 支持CRUD功能。 入门 先决条件:已安装Node.js和mongodb 克隆此应用git clone https://github.com/csd713/BookStore.git cd BookStore 安装依赖项npm install 在新终端上启动MongoDB- ...

    BookStore.zip

    【BookStore.zip】是一个压缩包,包含了开发一个基础版本的书店管理系统所需的相关文件。这个系统被称为"BookStore",它的设计可能相对简单,且未经精细装饰,因此在提交作为作业时,可能需要进行一系列的优化以提升...

    Java EE 7 Tutorial: The Duke's Bookstore

    《Java EE 7教程:Duke's Bookstore》是一个经典的示例应用,它全面展示了Java企业版7(Java EE 7)的关键技术和开发实践。这个源代码提供了学习和理解Java EE 7平台的一个实用起点。 Java EE 7是Java平台上用于...

    bookstore更新

    在IT行业中,"bookstore更新"这个话题涉及到的是一个书店相关的Web应用程序的更新过程。这个应用很可能基于Java Web技术栈,利用了Spring、SpringMVC和MyBatis(SSM)这三个核心框架,因为标签中提到了"bookstore ...

    Bookstore.zip

    "Bookstore.zip" 是一个压缩包文件,通常用于存储多个相关文件或文件夹,便于管理和传输。在这个案例中,我们可以看到一系列与一个书店相关的Web应用程序的文件和目录。以下是根据提供的文件名列表推测出的一些关键...

    bookstore1.rar

    标题中的"bookstore1.rar"表明这是一个压缩文件,通常用于集合多个相关文件以便于传输或存储。在这个案例中,它可能包含一个完整的SpringBoot多模块项目。SpringBoot是Java生态系统中一个流行的微服务框架,旨在简化...

Global site tag (gtag.js) - Google Analytics