前言

学习android一段时间了,为了进一步了解android的应用是如何设计开发的,决定详细研究几个开源的android应用。从一些开源应用中吸收点东西,一边进行量的积累,一边探索android的学习研究方向。这里我首先选择了jwood的Standup Timer 项目。

Standup Timer的项目结构

项目结构划分、以及各种设计模式分析我并不在行,所以如何写这篇博文让我相当的头疼。还决定从项目的结构谈起介绍一下每个包的职责,在结合MVC的概念进一步的了解如此划分项目的好处。
在src文件夹中net.johnpwood.android.standuptimer包对应MVC中的控制器,它包含了项目中的所有Activity。
net.johnpwood.android.standuptimer.dao是数据持久层负责数据的存储访问。
net.johnpwood.android.standuptimer.model对应MVC中的M模型处理绝大多数的业务(在Standup Timer中可能因为项目小,体现不出来)。
net.johnpwood.android.standuptimer.utils是个工具包。
另外res文件夹对应了MVC模式中的View。
About.java和Help.java是用于展示项目信息和帮助的Activity类,本身并没有复杂的业务逻辑。事实上about和Help是在ConfigureStandupTimer中,通过选择某项目录然后以对话框方式展示。当ConfigureStandupTimer接受用户的输入请求,ConfigureStandupTimer.java控制器将请求移交给About.java控制器进行处理,最后About.java将决定选择那个View来响应用户的请求,这里是about.xml。
ConfigureStandupTimer是项目的起始Activtiy,它调用视图main.xml接收到的一些会议开始前的信息配置(如参加人数、团队和会议时间等),处理验证用户输入数据的合法性,然后决定调用哪个Model或者移交给其他控制器。
MeetingDetails用于展示会议的细节,它调用视图meeting_details.xml和用户交互,并将请求转交给Model里的Meeting来处理具体业务。
Prefs是一个PreferenceActivity,它负责系统的配置。
StandupTimer是项目的业务核心,通过倒计时方式控制会议的进程。使用timer.xml和用户交互,由Team负责具体业务处理(多为数据存储访问)。
TeamDetails用记录团队的所有参加过的会议和会议统计信息。team_details.xml负责和用户交互,其主要业务交由Team.java和MeetingStats.java处理。
TeamList团队列表,由teams.xml和用户交互,调用Team来处理核心业务(从数据库中选取所有的团队名称)。

项目结构图

转载于:https://www.cnblogs.com/keyindex/archive/2010/09/14/1825671.html

Standup Timer的MVC模式及项目结构分析相关推荐

  1. ASP.Net MVC开发基础学习笔记(1):走向MVC模式

    原文出处: Edison Chou的博客(@周旭龙EdisonChou)    一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebFor ...

  2. JavaWeb项目 MVC模式 监考管理系统

    本文为JavaWeb项目课程设计,通过利用MVC模式,前端JSP+CSS界面展示,控制器用Servlet完成页面跳转,JavaBean完成数据库类.用户类.教师类等封装,开发出的一款教师监考管理系统. ...

  3. MVC模式和Maven项目构建

    1.    尽管Servlet + JSP可以完成全部的开发工作,但是代码耦合度高.可读性差.重用性不好,维护.优化也不方便.所以才有了MVC. MVC是当前WEB开发的主流模式,核心是使用Strut ...

  4. 谈 三层结构与MVC模式的区别

    谈 三层结构与MVC模式的区别 在CSDN和园子里有朋友谈到三层与MVC的区别,以前也有人抛出这个问题,本人对来公司面试的朋友也偶乐会提这方面的问题.     那么我也来讲讲我对这两者的理解吧.    ...

  5. (iOS-框架封装)iOS设计模式——MVC模式

    MVC模式是iOS编程中提到的最多次的设计模式,也是使用最频繁的设计模式之一.网络上有很多的MVC模式的分析文章,但都是从原理上来解释,很少能找到配套的案例来说明到底在实际的项目中要如何的使用这种模式 ...

  6. 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

    一. iOS 项目简介 1. iOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类 ...

  7. 浅析三层架构与MVC模式的区别

    浅析三层架构与MVC模式的区别 三层架构介绍: (点击链接即可见三层架构) MVC模式介绍: MVC全名是Model ViewController,是模型(model)-视图(view)-控制器(co ...

  8. WinForm中的MVC模式--MVP模式

    本文主要介绍MVC模式在WINFORM中的实现,其实砖家们都称它为MVP模式,小弟E文不太好,真的是记不住那个P怎么拼写的.. MVC模式主要解决的问题就是将表示层和业务层进行分离,在以往做WINFO ...

  9. Java-GUI编程实战之管理系统 Day1【项目开发流程、软件三层架构、项目需求、项目结构分析】

    视频.课件.源码[链接:https://pan.baidu.com/s/13ffqGDzH-DZib6-MFViW3Q 提取码:zjxs] Java-GUI编程实战之管理系统 Day1[项目开发流程. ...

最新文章

  1. Spring Batch 介绍
  2. vmware提示:此虚拟机似乎正在使用中,无法取得所有权的解决办法
  3. [经典面试题]二叉树宽度
  4. java 调用.net webservice axis2_java利用axis2调用.net写的webservice,传递自定义的实体类参数...
  5. TCP性能和发送接收窗口、Buffer的关系
  6. mysql 集群架构_mysql企业常用集群架构
  7. JavaScript内部实现
  8. ueditor工具栏弹出html,UEditor工具栏上自定义按钮、图标、事件、窗口页面
  9. 数据结构之线性表(附代码)
  10. lambda java 表达式_Java中的Lambda表达式
  11. wake on LAN: 三分钟实现从Linux和Windows设备上远程唤醒设备
  12. 2016年北京邮电大学计算机考研机试试题及答案
  13. 如何取消excel密码_教你快速设置/取消Excel文件打开密码,工作中经常用到。
  14. XP系统清理优化工具箱
  15. 超级马里奥代码_任天堂源代码泄露,引出超级马里奥64隐藏24年的角色
  16. 90后凤凰男:寒门难出贵子
  17. android 微信高仿,Android 高仿微信发朋友圈浏览图片效果(转)
  18. 收件人、寄件人如何根据快递单号查询物流进度
  19. [kubernetes] Endpoint 和 Service介绍与应用
  20. 深入理解 Proxy 和 Reflect-- JavaScript

热门文章

  1. java数据类型相互转换工具类
  2. HMM(隐马尔科夫)用于中文分词
  3. LeetCode简单题之最后一块石头的重量
  4. LeetCode简单题之反转字符串
  5. SpringMVC——通俗易懂讲讲Ajax~
  6. TVM yolov3优化代码修改(编译运行OK)
  7. TVM将深度学习模型编译为WebGL
  8. TSR交通标志检测与识别
  9. 2021年大数据Flink(十一):流批一体API Source
  10. Django入门之开发环境搭建1.1