对PureMVC的简单理解
发表于2017-10-19
Facade(单例,只发送不接受Notification)
关于Proxy(model)
只发送不接受Notification
Proxy模式为代理模式,为其他对象提供一种代理,并以控制对这个对象的访问。
Proxy负责收发服务端的消息,也可以在其中写少量逻辑。收到消息后发送Notification到Mediator(view部分),在Mediator可以实例化Proxy发送消息到服务端。
model 应该处理的是域逻辑(domain logic),也就是本身对象所需要包含的逻辑,比如针对Role来说updateHP,updateExp等,保证数据的完整性,但不处理对象之外的逻辑。
关于Mediator(view)
可以发送和接受Notification
Mediator模式是中介者模式,用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
Mediator是直接处理UI显示部分的逻辑,包括事件监听,发送与接收Notification(通过Proxy发送, Notify接受),把UI部分的逻辑写在这里,然后UI部分view类直接负责显示,这也解决了视图与视图控制逻辑的分离,减少耦合。
关于Command(command)
可以发送和接受Notification,比如可以接受键盘鼠标输入的指令,也可以是执行远程服务器返回的指令
Command模式是命令模式,将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。Command模式解耦了发送者与接收者之间的联系。
在PureMVC中,Controller保存了所有Command的映射。Command是无状态且惰性的,只有在需要的时候才被创建。
Command 则处理业务逻辑,协调多个Proxy的操作,处理异常等。
流程:LoginView-SendNotification()---->LoginCommand--Execute()--->调用proxy中的函数操作模型数据--LoginProxy(负责数据处理,与服务器通讯)---->LoginAction接收服务器返回-操作数据-返回通知视图控制器--LoginMediator--->操作视图。
http://blog.csdn.net/jiangguilong2000/article/details/77945575