一、MVC模式简介
1、导言
今天要介绍的是一种架构模式,首先要问什么是架构模式呢?我简单的说一下自己的理解,当你去设计一个程序时,首先要有一个思路,我要实现哪些功能呢,如何去实现,从哪里去入手,分为哪些模块去实现,这些都是我们提前要思考的问题点。那么这个时候我告诉你,已经有一种非常完善的编程方法,让你更快、更有效、更全面的去实现你想实现的功能,你是不是很兴奋。架构模式是一门专门的编程方法,属于编程的方法论,MVC架构模式是其中的一种。
2、简介
MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。这个模式认为,程序不论简单或复杂,从结构上看,都可以分成三层。
1)最上面的一层,是直接面向最终用户的"视图层"(View)。它是提供给用户的操作界面,是程序的外壳。
2)最底下的一层,是核心的"数据层"(Model),也就是程序需要操作的数据或信息。
3)中间的一层,就是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。
用一张图片(选自百度百科)表示为:
这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供方法,供上面一层调用,而模型层和视图层之间、视图与控制之间也提供了委托(事件)来回调方法。这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。
二、用UI中常见的经验-等级-金币模型来解释MVC模式
1、搭建经验-等级-金币模型UI界面
星星上的数字-等级、经验条-经验、500宝石-宝石数,button按钮UP代表经验的变化。这里UI界面就简单化了,主要是体会这种架构模式是如何实现功能,以及它的优点。
2、构建MVC模式中的View层
从我们能看到的入手,View层是用户和程序交互的点,用户需求的输入-程序输出。
分析:1)从UI上用户能获得4个信息,实时经验/每个等级对应的满级所需经验值(在一个经验条UI中)、等级值、宝石数;
2)没时经验的变化,需要用户点击Up输入(模拟杀死怪物或英雄升级)。
从这2点出发我们可以设计View层脚本:
3、构建MVC模式中的Model层
model层主要的功能是存储和读取数据,当数据改变是调用方法,达到更改我们UI界面上的数字的目的,给予用户反馈,
其中我们将使用到委托,并且因为我们只有这一个UI对象,所以将该脚本定义为一个单例脚本。
单例书写如下:
属性定义如下:
4、构建MVC模式中的Controller层
控制层主要是对model层的数据进行处理,反馈出我们需要的值。
代码贴出如下:
三、效果图贴出来
网友评论