puremvc是一个设计非常合理,耦合性非常好的一个优秀开源框架。它使用了一种观察者模式进行设计,基于通知进行的消息通信,基于报体进行的数据交互。其核心是一个叫做facade的类,它负责注册命令,管理消息通知等等,一切都因它而起。它必须继承自facade类和实现Ifacade接口,对其实例的获取是采取了单例的模式。复写控制器初始化函数,在其里面注册命令,同时必须有一个startup的函数来启动整个框架。中介器管理视图,因此中介器与视图应该紧紧耦合。代理与委托类仅仅耦合,代理中保存对委托类的引用。
项目目录结构应该如下:
在主程序加载完成以后调用facade类的startup函数,初始化框架:
在facade类里面应该定义消息体,初始化控制器后,注册函数等等:
相应的启动命令,在其里面注册代理,注册视图,必须注意的是它们是按照顺序执行的,注册代理在前,视图在后:
登录的command,其里面保存对代理类的引用和使用:
用户的代理类,其里面保存对代理类的引用和使用:
用户委托类:
用户登录视图层:
针对loginForm写的中介器,它负责管理登录框:
puremvc复写的地方非常多,这点要注意,另外需要注意构造函数的编写。