PureMVC(JS版)源码解析(八):Proxy类
前面,我们讲了与视图相关联的Mediator类,接下来我们讲讲与数据相关联的Proxy类。
关于Proxy类的作用,在Proxy类源码中,有这么一段注释:
* In PureMVC, Proxy classes are used to manage parts of the application's data
* model.
翻译成中文就是,在PureMVC中,Proxy类用来管理应用的数据模型。
Proxy类的结构很简单,一个和Mediator类功能一样的NAME静态成员,还有一个data属性,用来存储proxy管理的数据。
/** * @ignore * The Proxys name. * * @protected * @type String */ Proxy.prototype.proxyName= null; /** * @ignore * The Proxy's data object. * * @protected * @type Object */ Proxy.prototype.data= null;
这两个属性都有get/set方法(getProxyName()/setData()/getData())。
接下来,我们看看Proxy类的构造函数:
function Proxy(proxyName, data) { this.proxyName= proxyName || this.constructor.NAME; if(data != null) { this.setData(data); } };
Proxy类通过构造函数为proxyName和data属性赋初值。
Proxy类继承Notifer类,因此它可以发送消息,但他是一个纯粹的通知者,它不具备接受消息的功能,这一点需要记住。
Proxy.prototype= new Notifier; Proxy.prototype.constructor= Proxy;
另外,和Mediator类一样,Proxy类也要在facade中注册,它也有onRegister()/onRemove()方法,这里就不在陈述,具体用法和Mediator类的onRegister()/onRemove()用法一样。
总结一下:Proxy类的结构很简单,我们只需要记住两点,一是它有一个data属性,可以用来存储它所管理的data model,二是它可以发送消息,不能接受消息。
最后,同样附上Proxy类的思维导图:

【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步