CatLib入门1_路由
CatLib入门1_路由
CatLib是什么本篇将会讲解本篇将会出现的代码打开CatLib的RoutingDemo来看一下运行流程 突然有事不写了直接上张图
CatLib是什么?
CatLib 是一套渐进式的服务提供者框架。框架为客户端提供多个实现,并把他们从多个实现中解耦出来。服务提供者的改变对它们的客户端是透明的,这样提供了更好的可扩展性。她不仅易于上手,还便于与第三方库或既有项目整合。
本篇文章讲带你初步了解CatLib框架的路由系统如何使用,本篇文章基于CatLib0.8.4版本。不就后框架会更新到1.0版本,不过路由应该不会有什么变更。
本篇将会讲解
CatLib路由官方Demo引导程序的调用流程 注册服务提供商的调用流程 路由特性的使用路由的调度使用
本篇将会出现的代码
代码简介
new Core.Application(this)在项目运行最初使用,用来创建CatLib实例。application.Bootstrap(new Type[] { typeof(Bootstraps) }).Init();引导程序,需要传入一个引导类的数组,引导类须继承IBootstrap接口并实现它的方法,用于引导注册服务提供商,它会调用每一个传入的类的Bootstrap()方法,Init()方法会调用每一个注册的服务提供商的Init()方法。App.Instance.Register(typeof(RoutingProvider));注册服务提供商,它会构造一个服务,这一句是构造了一个路由服务,服务类需继承自ServiceProvider类。构造完成后它会调用服务的Register()方法。App.On(ApplicationEvents.OnStartComplete, (sender, e) =>{});注册事件,第一个参数是事件名称,第二个参数是事件。当调用App.Trigger(ApplicationEvents.OnStartComplete);的时候就会所有该事件挂载的方法。IRouter router = App.Make();构造服务,这里构造了路由服务。构造了这个服务后 我们就可以使用这个服务提供的方法。router.Dispatch(“attr-routing-simple/call”);调度路由,它会调用这个路由名称指定的方法。router.Reg(“attr-routing/hand”, typeof(AttrRouting), “RegRoute”);手动指向路由,第一参数为路由名称(路径),第二个参数是指定某个类,第三个参数是这个类下的方法名称。 当调度”attr-routing/hand”这个路由时,就会调用到AttrRouting类下的RegRoute()方法。router.Reg(“callback-routing”, (request, response) =>{Debug.Log(“this is call”);});手动指向类路由,基于回调的路由。 第一个参数是路由名称(路径),第二个参数是方法。 当调度”callback-routing”时,会调用第二个参数里的方法。router.Group(() => { /* do something */ }, “group-name-2”);路由组,第一个参数是路由组要执行的方法,第二个参数是路由组的名字。
打开CatLib的RoutingDemo来看一下运行流程。
public class Program : UnityEngine.MonoBehaviour
{
public void Awake()
{
var application =
new Application(
this);
application.OnFindType((type) =>
{
return Type.GetType(type);
});
application.Bootstrap(
new Type[] {
typeof(Bootstraps) }).Init();
}
}
public class Bootstraps : IBootstrap
{
public void Bootstrap()
{
App.Instance.Register(
typeof(RoutingProvider));
App.Instance.Register(
typeof(RoutingDemo));
}
}
这里是这个Demo的入口,
在Program类中的Awake()构建了一个CatLib实例, 传入了一个查找类型的方法(暂时用不到,本篇不讲解。) 启动引导程序 并调用了Init()初始化方法。
Bootstraps是引导类,引导类必须继承IBootstrap接口。 引导程序会调用Bootstraps类中的Bootstrap()方法。 在Bootstrap()方法中
注册了路由服务 注册了演示Demo用的服务
当服务注册完时,会调用它的Register()方法,当框架初始化时会按顺序依次调用服务的Init()方法,当框架初始化完毕时,会触发ApplicationEvents.OnStartComplete事件。
当注册路由服务时,Register()方法会进行
突然有事,不写了。直接上张图。