PureMVC(JS版)源码解析05:SimpleCommand类

PureMVC

之前对PureMVC中涉及到观察者模式的三个基本类(Notification/Observer/Notifier)进行了分析,接下来将对PureMVC源码中的其他类进行分析。

SimpleCommand类

SimpleCommand在MVC类中属于C部分,用于一些复杂的逻辑处理,SimpleCommand类在PureMVC被设计成了一个双面角色,它既可以扮演通知者(Notifier)的角色(即可以发送Notification),也可以扮演观察者(Observer)接受消息。

通过分析源码可知,SimpleCommand类,继承了Notifier类:

1
2
3
4
function SimpleCommand () { };

SimpleCommand.prototype= new Notifier;
SimpleCommand.prototype.constructor= SimpleCommand;

由于继承了Notifier类,SimpleCommand类继承了Notifier类的sendNotification()方法,故说它可以扮演通知者角色。

另外,通过源码发现,SimpleCommand类,还有个execute()方法:

1
2
3
4
5
6
7
8
9
10
11
12
/**
* Fulfill the use-case initiated by the given Notification
*
* In the Command Pattern, an application use-case typically begins with some
* user action, which results in a Notification is handled by the business logic
* in the #execute method of a command.
*
* @param {puremvc.Notification} notification
* The notification to handle.
* @return {void}
*/
SimpleCommand.prototype.execute= function (notification) { };

execute()方法,接受一个Notifcation对象作为参数,但是至于何时会调用execute()方法暂时先不管他,记住SimpleCommand有这个方法。

因为execute()方法接受一个Notification对象作为参数,因此,SimpleCommand类可以接受消息。

SimpleCommand类的结构很简单,暂时只需要记住以下几点:

  • SimpleCommand类继承自Notifier类(作为消息通知者)
  • 有一个execute()方法,execute()方法接受一个Notification对象作为参数(作为消息接收者)
有用就打赏一下作者吧!