简介
就是对“解释” 进行了一层封装。 实际的“解释” 代码还是需要自己写!
解释器使用
代码如下:
using UnityEngine;
using IFramework;
// 实现解释器的接口
public class TestExplain : MonoBehaviour,IExplainer<string,int>
{
// 逆向解释
public string ExplainToT(int v, IEventArgs arg, params object[] param)
{
return v.ToString();
}
//顺向解释
public int ExplainToV(string t, IEventArgs arg, params object[] param)
{
return int.Parse(t);
}
void Start()
{
// 通过全局访问点 获取当 string int 类型解释器 。string 类型进行解释。
Debug.Log(Explanation<string, int>.CreateInstance().SetExplainer(new TestExplain()).Explain("666", null)) ;
Debug.Log(Explanation<string, int>.CreateInstance().SetExplainer(new TestExplain()).Explain("666", null).GetType()) ;
}
}
输出结果
image.png代码扩展使用思路
根据解释器模式的的定义,主要将一种“物”解释成为另外一种“物” 。“物”的外形发生改变,而含义未变。
比如:序列化、表格、数据库 的转化。
-
我们只要将 转化器实现
IExplainer
接口。就可以直接寻找Explanation
获取转化,虽然转化的代码仍然是自己写的。 -
若实现:
IExplainer
接口,表明该类型支持转化。
结尾
以上内容是 作者个人的理解,如有错误,欢迎指出。
顺便给出OnClick大佬自己 写的文档地址:006 解释器
如果对 IF框架有其他看法,也欢迎大家 进群交流。
网友评论