Controller
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public abstract class Controller
{
}
Model
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public abstract class Model
{
//名字标识
public abstract string Name { get; }
}
View
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class View : MonoBehaviour {
//名字标识
public abstract string Name{ get;}
}
MVC
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//第三方协调者
public static class MVC
{
//----资源----
//Model的标识,Model
public static Dictionary<string, Model> Models = new Dictionary<string, Model>();//名字 -- model
//view的标识,Model
public static Dictionary<string, View> Views = new Dictionary<string, View>();//名字 --view
//事件的名字,controller的类型
//通过事件的名字来找出哪个controller和事件相关联
public static Dictionary<string, Type> CommandMap = new Dictionary<string, Type>();//事件名字 -- controller的类型
//----注册----
//注册view
public static void RegieterView(View view)
{
Views[view.Name] = view;
}
//注册model
public static void RegieterModel(Model model)
{
Models[model.Name] = model;
}
//注册controller
public static void RegieterController(string eventName,Type controllerType)
{
CommandMap[eventName] = controllerType;
}
//----获取----
//获取model
public static T GetModel<T>()
where T:Model
{
foreach (var m in Models.Values)
{
if(m is T)//判断m是否是T类型
{
return (T)m;
}
}
return null;
}
//获取view
public static T GetView<T>()
where T : View
{
foreach (var v in Views.Values)
{
if (v is T)//判断v是否是T类型
{
return (T)v;
}
}
return null;
}
}