MVC记录
MVC这三层分别要完成哪些工作呢?
1、M层 模型(更多的是数据库模型)
(1)创建数据库、创建相应的表
(2)完成针对数据库各个表的增、删、改、查的操作类
(3)映射数据库各个表的实体类(这个实体类的作用就是沟通数据库层(M)和控制层(C)的桥梁,同时这个实体类也将担负其后台数据(xml、sbjson等)与本地数据的沟通和存储)
本层要实现的功能:
(1)
本层输入件:sql增加或插入数据库表对应的实体类的对象的语句
本层输出件:增加、或插入数据库
(2)
本层输入件:sql查询语句
本层输出件:返回存储实体类对象的数组
(3)
本层输入件:sql删除语句
本层输出件:删除数据库中的指定信息
2、V层 视图
不用多讲了,在ios中,这个层主要由.xib文件完成。如果客户由自定义需求,则在.m文件中实现。
本层实现的功能就是控件的布局。
3、C层 控制
这个层的意义就在于确保M和V的同步。我个人理解,这层不仅叫控制层,更应该叫业务层。
本层要实现的功能:
(1)
本层输入件:界面控件中数据和事件
本层输出件:
第一:调用M层的接口,更新M层(数据库)中的数据
第二:调用V层的接口,更新V层(界面)中的数据
在现实的开发过程中,代码真的就这么清晰地分成以上三种吗?
现实中,工程中还有以下几种类型的代码:
(1)接口文件[数据操作]
(2)解析通过接口获取的数据[数据操作]
(3)开源框架(实现各种界面效果、解析各种数据)[数据操作+V显示]
(4)工具类(比如为图片增加圆角、实现checkbox、实现各种页面效果、数据加密解密)[数据操作+V显示]
(5)本项目提炼的公用类(如验证、升级检测、数据更新等)[数据操作M]
业务层BusinessLayer:
可以调用:数据层
可以被调用:控制层
组织当前软件独特的业务体系,只处理数据,和数据层和控制层有关系,和界面层没有任何关系。
常见业务:
(1)数据同步(用到数据层数据操作和界面层的数据)
(2)软件升级
(3)登录验证
(4)账号有效性验证
控制层ControllerLayer:只负责数据层和界面层的数据同步(通过业务层来实现)
数据层DataLayer:只和数据打交道,和业务毫无关系
界面层ViewLevel:只和界面打交道,和控制层打交道,和其他层毫无关系
上面写的比较乱,来张图,看看能不能捋清楚,知道我们在实际编码过程中组织各种代码和文件:
用MVC思想重构一个项目的核心就是剥离出这个项目的业务逻辑。
什么是项目的业务逻辑?所谓业务逻辑关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计。简而言之,所谓业务逻辑就是指业务规则。凡事有规则的东西,就是业务逻辑,没有规则的东西就不是业务逻辑。
利用MVC思想组织的文件结构一例:

MVC记录的更多相关文章
- MVC 记录操作日志与过滤特殊字符
最近进行的MVC系统需要用到记录操作日志和过滤特殊字符的功能,如果每个action中都调用记录日志的方法就太麻烦了,所以根据需要结合mvc的过滤机制 写了个特殊字符验证与记录操作日志的公用类: pub ...
- MVC 记录
ASP.NET MVC框架提供了一个帮助我们构造Html元素的类:TagBuilder ps url cnblogs.com/yibinboy/articles/5187682.html HttpRu ...
- 从零开始学 Java - 搭建 Spring MVC 记录云创的日子 第一章
2017年11月29日 来到新项目,需要用到Spring MVC ,那么我就开始记录我这次的学习. Spring MVC 框架是围绕一个 DispatcherServlet 来设计的,这个 Servl ...
- asp.net mvc 记录Action耗时
可能有些时候需要记录Action的执行时间来优化系统功能,这时可以用过滤器来实现. 新建项目 项目名称随便取 身份验证:不进行身份验证 安装Nlog 这里使用NLog来输出日志,具体使用说明请看:ht ...
- MVC5知识点记录
IIS/ASP.NET管道 原理永远是重中之重,所以在开篇的地方,先了解一下地址栏输入网址回车之后的故事. 不同IIS版本处理请求也不一样 IIS5 IIS 5.x 运行在进程InetInfo.exe ...
- MVC中Asp.Net管道(二)
Asp.Net管道: 1.在工作进程w3wp.exe中,利用asp.net_isapi加载.NET运行时,6.0中引入了应用程序池的概念,一个工作进程对应的一个应用程序池.一个应用呢程序池可以加载一个 ...
- ASP.NET MVC一次删除多笔记录
批量删除数据记录,如下面的截屏: 先选中想删除的记录,然后点一下删除铵钮,系统将把选中的记录一次性删除.在此,Insus.NET不想每删除一笔记录连接一次数据库. 因此需要把选择的记录一次上传至服务器 ...
- 在ASP.NET MVC 4 on Mono中使用OracleClient in CentOS 6.x的问题记录
在ASP.NET MVC 4 on Mono中使用OracleClient in CentOS 6.x的问题记录 前言 最近有个Web项目,业务功能不复杂,但是这个客户(某政府部门)有两个硬性要求:1 ...
- 通过拦截器Interceptor实现Spring MVC中Controller接口访问信息的记录
java web工程项目使用了Spring+Spring MVC+Hibernate的结构,在Controller中的方法都是用于处理前端的访问信息,Controller通过调用Service进行业务 ...
随机推荐
- [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
环境: 操作系统:64位WIN7 数据库:SQL Server 2000 SP1 开发语言:J2EE 在Servlet连接数据库时出错提示: [Microsoft][ODBC 驱动程序管理器 ...
- OBD K线抓包 III
14230 HL激活, 5BPS又称 00 //电平激活 C1 33 F1 81 66 //14230的Enter命令 83 F1 11 C1 EF 8F C4 //回应了,一个命令就回应了... ...
- jQuery表单验证插件——jquery.validate.js
官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一.导入js库 <script src="../j ...
- 腾讯数据总监:运营人员必须掌握的APP基础数据分析体系(没有比这篇更系统全面的)
导读:在互联网企业,任何一个APP都要事先规划好数据体系,才允许上线运营,有了数据才可以更好的科学运营.因此本文将为大家介绍APP的基础数据指标体系.主要分为五个维度,包括用户规模与质量.参与度分析. ...
- Java堆和栈详解
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间 ...
- 由“单独搭建Mybatis”到“Mybatis与Spring的整合/集成”
在J2EE领域,Hibernate与Mybatis是大家常用的持久层框架,它们各有特点,在持久层框架中处于领导地位. 本文主要介绍Mybatis(对于较小型的系统,特别是报表较多的系统,个人偏向Myb ...
- CSS3的chapter5
变形样式——transform: translate() ——指定对象的2D translation(2d平移) transform-orig ...
- chrome的timeline中stalled问题解析
原文地址 :http://foio.github.io/chrome-stalled/ 在公司国做一个运营活动,上线后PM总是抱怨访问速度过慢,影响运营效果.然而从前端的角度来说我已经做了如下优化: ...
- Scrum Meeting 3-20151203
任务安排 姓名 今日任务 明日任务 困难 董元财 请假(明天是编译截至最后一天) 学习上拉加入新的listview 无 胡亚坤 请假(明天是编译截至最后一天) 设计优化聊天页面 无 刘猛 请假(明天是 ...
- Ubuntu14.04安装redis和简单配置
1.前言 Redis是常用基于内存的Key-Value数据库,比Memcache更先进,支持多种数据结构,高效,快速.用Redis可以很轻松解决高并发的数据访问问题:做为时时监控信号处理也非常不错. ...