现在的位置: 首页 > 综合 > 正文

MVC模式

2013年10月04日 ⁄ 综合 ⁄ 共 1490字 ⁄ 字号 评论关闭

      本人应该还算初级程序员,所以也很少“模式”这东西。今天看到一帖子,前辈说要想成为高手就必须懂如下的的知识:

  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

后面的知识点,由于小弟也没有弄明白,等小弟弄明白一定跟大家一起分享

呵呵~~ 希望说得不太准确,或者理解有误,请高手点评。

 

   

抱歉!评论已关闭.