|
|
简单的说,PureMVC源于MVC模式,主要就是Model、View、Controller这三层次。但在PureMVC中上述三个都被封装成了三个核心层,并通过单例模式提供给应用程序。开发人员) E) n' U5 y6 j' l) x7 E3 I6 S2 @5 q
不需要直接使用这三个核心层。PureMVC为了简化开发复杂度,提供了一个Facade类,该类提供了与核心层通信的唯一接口,可以初始化上述三个核心层,并可以访问它们的& e& ]) b; a. o( K/ V7 p6 E0 ?1 d, ?
public方法,同时该类也是以单例模式提供给应用程序。开发人员只需要继承一个Facade类并创建具体的Facade类就可以实现整个MVC模式。除了知道Facade类之外,还需要了解
5 a/ n1 c [' h2 \; R与三个核心层相辅助的三个类:Proxy、Mediator、Command。
, ?4 C1 s% N" ^6 [- v$ F9 H Proxy,可以理解为代理,负责操作数据的存取。. F6 q) g( f% t7 |, b& K
Mediator,可以理解为媒介,负责UI层与控制层之间的沟通。- P F7 P: f; I$ S4 o7 u4 b
Command,则是用来操作具体的业务逻辑。9 [9 E. O e9 l3 r' B7 h$ ?2 I' Q
为了对这三个核心层尽量的解耦,PureMVC中采用了消息机制,层与层之间的通信通过发送消息(notification)来实现。消息发送者只需要实现发送,不需要知道谁会接收
1 J% W T/ a# z- q( H& E& h+ r这些消息。消息接收者如果需要接收消息,只需要注册一下对应的消息就可以了。如:registerCommand(START_UP, StartUpCommand);这句话产意思就是注册了一个对应关系,
1 S, G8 F$ [! P" _2 v7 o% H7 k其中START_UP是消息的名称,StartUpCommand则是一个Command,这样当有人发送了START_UP名称的消息后,就会由StartUpCommand进行处理。" C3 |3 E! A1 a3 t
4 v- Y6 s/ P0 f# B/ t' I
|
|