puremvc是一个轻量级的mvc开源框架,运用它,可以让你的系统耦合性更低,扩展性更好。它的代码很简洁,估计不到千行,设计的架构确让人叹为观止。了解不深,用得不好,开发效率不高,新人的学习曲线很高,代码无法维护。我最近系统研读它的代码,代码虽然短,却博大精深

  • 整体架构

先来看看puremvc的架构

Model保存对Proxy对象的引用,Proxy负责操作数据对象,与远程服务端通信取数据。

View保存对Mediator对象的引用。Mediator操作具体的视图元件,监听和发送相关的Notification,改变视图组件的状态。

Controller保存所有Command的映射。Comand是无状态的,需要时被创建,通常比较复杂的业务逻辑都在Command中实现。

Facade是整个框架的核心,它其实是Facade模式,封装了对 Model,Controller和View的操作,简化了相关接口的调用。

  • 相关的设计模式

Proxy 代理模式 – 为其他对象如Command、Mediator提供对数据对象的操作

Command 命令模式 – 将请求封装成一个对象,对象的发送者和接受者可以解耦。这里的Command主要是封装了相关的业务逻辑,可以获得Proxy 和 Mediator 的引用进行操作。

Observer 观察者模式 – 一个监听的对象可以监听相关的事件Notification,当事件发生时,就可以更新相关的操作。比如Mediator监听相关的Notification,用于改变视图的显示。

Mediator 中介者模式 – 该模式本意是封装一系列对象的交互,使得各对象不需要显式地互相引用,耦合松散。puremvc主要用它将视图元件的操作封装起来,所有对视图的操作的都必须通过Mediator

Facade 外观模式 – 定义一个统一的简单的高层接口,使得整个系统更容易使用。puremve将Model View 和 Controller 的操作都统一管理。我们调用的时候都是通过facade的单实例来操作

Singleton 单例模式 – 保证只初始化一次。这里的Facade、Model、View 和 Controller都是单例

  • 相关类结构图

整体框架图
View层
Model层
Controller层
看完了代码,架构,该实践了,欢迎阅读我的另外一篇文章《PureMVC实例入门》