pureMVC中有这样一段:
程序中的逻辑分为Business Logic(业务逻辑)和Domain Logic(域逻辑),Command管理应用程序的Business Logic(业务逻辑),与Domain Logic(域逻辑)相区别,Business Logic(业务逻辑)要协调Model与视图状态。
Model通过使用Proxy来保证数据的完整性、一致性 。Proxy集中程序的Domain Logic(域逻辑),并对外公布操作数据对象的API。它封装了所有对数据模型的操作,不管数据是客户端还是服务器端的,对程序其他部分来说就是数据的访问是同步还是异步的。
Command可能被用于实现一些复杂、必须按照一定顺序的系统行为,上一步动作的结果可能会流入一下个动作。
Mediator和Proxy可以提供一些操作接口让Command调用来管理View Component和Data Object,同时对Command隐藏具体操作的细节。可以抽象出这样的结论:proxy是框架的数据来源,view需要数据的时候从proxy得到;
实际上,规则和AI的过程是利用参数传递给规则和AI,得到AI和规则的返回数据。在pureMVC中典型的规则调用过程是:在mediator中用户的操作需要flash反馈的时候,mediator发出通知,通过command 利用notification里的参数操作proxy,并由proxy发出notification,返回flash的数据反馈,交还给mediator做出相应动作;
上述过程中command起到的作用只是转发mediator的请求给proxy,并操作proxy,因为proxy不能接收notification;
故规则和AI可以放置在proxy中,当然这是对自建规则和AI的情形,如果要引入其他库,则另当别论;