MVC模式
本人应该还算初级程序员,所以也很少“模式”这东西。今天看到一帖子,前辈说要想成为高手就必须懂如下的的知识:
1》精通Android体系架构、MVC、常见的设计模式、控制反转(IoC)
2》编写可重用、可扩展、可维护、灵活性高的代码
3》高效的编写高效的代码
4》学会至少一门服务器端开发技术
第一条:android体系架构,觉得这个问题比较深奥,不是一下能解决,所以留到后面。等我弄明白后我会一一给大家分享。
第二条:“MVC”,初看“这是什么东西?”,我立马就百度百科了,认认真真的从头看到尾才发现,这东西原来我早就接触了,只是一直不知道叫什么罢了。
还是挺简单的。就以这条分享下我对MVC的理解:
先解释先这个MVC是由那些单词缩成的:
"M": model模型
"V": view 视图
"C":control 控制
本人专做手机游戏开发出来得,所以就不难理解了。马上就让我想到了下面的结果了:
public void run() {while(flag){while(isGameOn){//绘图处理draw();//逻辑处理logic();try {Thread.sleep(gap_time);} catch (Exception e) {e.printStackTrace();}}try {Thread.sleep(40-gap_time);} catch (Exception e) {e.printStackTrace();}}}
相信做过游戏都懂这段代码:
draw():就相当于"V",只负责视图显示。
logic():就相当于"M",就负责所有的逻辑处理
那"C"了?就相当于如下结果了:
public void logic(){//游戏中有哪些状态:暂停、继续switch(gameStatus){case GAME_ON:gameOnLogic();break;case GAME_PAUSE:gamePauseLogic();break;case GAME_FAIL:gameFailLogic();break;case GAME_WIN:gameWinLogic();break;}}
就相当于gameStatus了,灵活的利用它切换各种状态处理,也就是我所理解的"开关中心"。
下面就来看看百度百科的介绍:
模式图:
M是指数据模型,V是指用户界面,C则是控制器。使用MVC
的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。下面说说MVC模式的优缺点:
优点:
1、最重要的是应该有多个视图对应一个模型的能力,减少代码冗余。(重用)
2、由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。(独立)
3、它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。(管理)
缺点:
1、费时考虑模型和视图要严格的分离问题,这样也给调试应用程序带来了一定的困难
2、管理负担加重
3、MVC并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
常见模式:请看此博文资料:http://blog.csdn.net/aa4790139/article/details/7081998
后面的知识点,由于小弟也没有弄明白,等小弟弄明白一定跟大家一起分享。
呵呵~~ 希望说得不太准确,或者理解有误,请高手点评。
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- No.11 使用firewall配置的防火墙策略的生效模式
- Android分类列表之ListView-ViewType实现
- Android(安卓)Fragments 详细使用
- unity调用android语音识别
- 关于Android(安卓)RenderScript 的详细说明和一些实用文档
- 第一篇博客——从《第一行代码》学习笔记开始
- Android用GridLayout网格布局实现简单的计算器界面
- java/android 设计模式学习笔记(6)---适配器模式