因为在工作中开始对这个框架开始接触,而平时在学校,其实对于框架了解的是比较少的,也是简单做下记录。
MVC的构成
MVC的初衷是分离逻辑,使得业务开发更为清晰分明,可以将一个业务拆成以下三个部分:
-
Model:单例,数据存储检索,也可以带有逻辑来更新数据
-
View:数据展示的视图但不包含业务逻辑
-
Controller:单例,接收输入,调用模型和视图完成用户请求
MVC优缺点
优点
-
局部上讲,在游戏开发中的Controller只负责收发消息,在不涉后端的地方对数据进行更改与提取的话只需要跟Model交互即可,更好地去管理了前后端通讯的时机
-
全局上讲,在View的数量偏多时,可以方便地复用数据调用接口,后期拓展业务,增加需求也很方便
-
业务分离,每个业务拥有一套MVC,同时前后端基于Controller作为中介,协同开发会容易很多
-
框架实现难度简单,主要是单例
缺点
-
依赖事件,小项目中的逻辑写起来过于冗余,尤其在后端没有或者需求量较少时会使得Controller的存在感很低
-
在不存在可分类业务的情况下,MVC是几乎没有意义的
-
不正确使用时会导致性能问题,比如Model到Controller之间的额外调用甚至反复调用
单例
在Unity中的单例(不继承MonoBehavior),饿汉模式加锁,可被继承
using System;
public abstract class Singleton<T> where T: Singleton<T>
{
private static T _instance;
private static readonly object _locker = new object();
protected Singleton() {}
public static T Instance
{
get
{
if (_instance == null)
{
lock(_locker)
{
if (_instance == null)
_instance = Activator.CreateInstance<T>();
//可用 _instance = new Singleton();
}
}
return _instance;
}
}
}
继承方法:
public class GameManager : Singleton<GameManager> {}