PureMVC QA:Where Should I Declare Notification Name Constants

[译]PureMVC QA:Where Should I Declare Notification Name Constants?mvc

在PureMVC中我应该在那声明通知名称常量呢?

Q:我想知道在哪声明通知(Notification)名称的常量,在代理(Proxies)或ApplicationFacade文件中?spa

还有,若是我把全部的通知常量声明在ApplicationFacade中,这样这个文件就会很大,我想过把声明放在一个独立的文件中,这样能够吗,或还有其余地方能够声明常量吗?代理

A:rem

把通知常量声明在具体的Façade(通常为ApplicationFacade)中对须要访问通知常量的类来讲不失为一个好地方,尤为对于Command和Notification映射而言,放在ApplicationFacade中是一个合理的地方。固然,若是有太多的常量,放在一个单独的ApplicationConstants文件中也是能够的。可是须要把这个文件放在与ApplicationFacade的同一级目录,这样,看成为一个库的时候就特别方便了。get

对于给定的应用,视图层和控制层一块儿完成特定的用户用例或功能,但Mediators(视图层)和Commands(控制层)相互引用对方的常量这必定不是你想要的,不然,他们与在同一层次就没有区别了。因此,把常量发在ApplicationFacade或ApplicationConstants中就是一个比较天然的地方,让视图曾和控制层之间没有造成依赖关系。io

因为应用特定的视图层和控制层老是容许你与特定的模型交互,在模型层(Proxies或ModelConstants)定义通知常量供Commands(控制层)和Mediators(视图层)访问是一个好办法,他容许与Proxies直接交互。引用

不管怎样,模型应该是最为独立的一层,以即可以总体移到其余应用中,被不一样的视图或控制层使用。margin

所以,模型层(Proxies)不该该引用特定的视图或控制器中的常量,好比ApplicationFacade或ApplicationConstants。top

你应该在模型中定义它本身发出的通知常量,这样,模型层就是一个可移植的。这也是为何Proxies不接收通知的缘由,你想,假如模型试图监听在应用其余地方定义的通知,这样模型就依赖于视图或控制层了。di

相关文章
相关标签/搜索