移动端的客户端MVC设计模式思考
来源:互联网 发布:mysql 解除表锁定 编辑:程序博客网 时间:2024/04/30 03:51
关于MVC 设计模式的思考,记录于此,与君共勉。
首先,我们大家都非常的熟悉MVC模式,Module,View,Control.绝大多数的人都是很理解他们的含义的,并且也都经常的使用这样的开发模型。
正式因为大家那么经常的使用,我才想到去思考MVC模型的本身。
第一个问题是我们为什么要MVC?是因为我们在设计过程和编码过程中,发现后台与前端之间交互过于频繁,导致耦合度非常高,并且根本不可能完全的解耦。那MVC模式提出了讲视图,控制以及模型分离开来,其中视图和模型都与控制层耦合。
但是,模型是死的,人是活的。这种严格的模型限制也限制住了我们发挥的空间,以及产品的性能。并且,对于经常会出现前端变更的系统来说,意味着不稳定的controller。这个时候,我们是否可以考虑让页面自己管理自己,当该页面的需要超出了当前的控制该页面的轻量级module的管理范围时,再将这个请求抛给controller,进行页面跳转或者其他数据获取操作,那这个时候模型可能会变成这样:
这个模型提供很强的对于前端变更的适应性。这个模型已经可以适应很多的移动端应用了。但是有的时候需求经常的变更,导致在这里的business Module也会跟着经常的变动或是被删除。可是这个Module我们当初开发了很长时间,有人力成本,很多东西还可以复用。这个时候我们会想到将对于本系统一些常用的Business module提取出来,单独作为一个大的模块。当一个新的业务需求到来时,我们需要做的就是拼这些常用的module在一起,然后加上一点点当前需求的特殊需要即可。到时候,及时这个需求需要被删除,也只是删除少部分的代码。总体的思想就是减轻与前端交互的易变业务逻辑的代码复杂度。模型见下图:
在这个视图中,Reference Unit就是那个被我们从Business Unit中提取出来的公共业务代码模块。而在Contronller下面我们划分了Core,作为底层的公共核心模块,其实是想约束上面易变模块的,以达到控制软件边界的效果。另外,讲Data单独拿出来,是因为整个体系架构中,我们希望所有的耦合都是数据耦合,这样,就没有模块之间的强的依赖关系了。
个人经验,欢迎探讨。
- 移动端的客户端MVC设计模式思考
- MVC设计模式的思考
- MVC设计模式和MVC框架的思考
- 客户端的MVC模式
- 设计模式的思考
- 设计模式的思考
- 设计模式的思考
- 客户端程序开发中的mvc设计模式
- 关于设计模式的思考
- 关于设计模式的思考
- 设计模式学习的思考
- 设计模式的简单思考
- 设计模式的思考1
- 编写桌面客户端的设计思考点
- 关于mvc模式的具体思考
- 移动端导航模式的热门设计
- 移动客户端开发的一点小小的思考
- 设计模式--对原型模式的思考
- Solr 4.6.0 导入 Mysql 数据
- Linux 动态载入 Module 介绍
- 黑马程序员----java编程之空中网面试题
- 让EditText不能自动获取焦点
- python 学习笔记2------概述2
- 移动端的客户端MVC设计模式思考
- 域名,ip相互转换(Linux,getaddrinfo, getnameinfo)
- JDBC学习笔记(二)--数据库连接池 DBCP数据源
- ——tolua++使用(将2d_x自定义类_CursorTextField_导入lua)
- C++词法规则之变量 常量 语句 注释
- Linux下安装Eclipse出现错误failed
- 通过进程id获取窗口句柄
- 面向对象之this关键字,static关键字 main
- 深入linux内核架构学习笔记-第7章 模块