Q: 代理不能接受通知消息的理由是什么?程序员
引至:《pureMVC最佳实践和实现原理》mvc
代理,发送,当不接受通知。spa
对代理(Proxy)而言,若是监听通知的话将与视图(View)和控制器(Controller)耦合太紧。设计
视图和控制层必须监听来至代理(Proxies)通知,做为呈现并容许用户交互由代理持有的数据模型数据。代理
不管怎样,视图和控制器的变更应该不能影响到数据模型层。rem
例如,一个管理应用和一个相关的用户应用能够共享相同的数据模型。仅仅是使用不一样的用例而使用不一样的视图/和控制器来操做同一数据模型。get
代理之间能够得到并操做彼此须要的数据,大多数领域模型中都天然地存在这个层次,并有充分的理由容许模型这么作的,由于代理提供数据的访问控制,并须要维护其数据完整性。it
某些人可能会争论,须要在代理(Proxies)之间经过发送通知以便于彼此解耦(这样代理就须要监听通知消息了)。这是对的,但咱们主要关注的是MVC各层之间的松耦合,具体一点就是模型和视图之间的松耦合,而模型之间的耦合属于同一层之下。io
若是代理能够监听消息,有可能有粗心的程序员可能视图让一个代理监听来至与定义在视图或控制器层的通知消息,这样,模型与视图间就相互耦合了,这时若是把模型层移到另一个应用程序中将会变得困难。import
因此,代理不容许接收通知的设计决定是在两个罪恶耦合源之间取其轻罢了。