简而言之:PAC(Presentation-Abstraction-Control)设计模式,只是MVP(Model-View-Presenter)模式,其中视图是被动视图?
据我所知
- MVP是演示者,与模特交谈 . 然后一个View与Presenter交谈,另一方面,Presenter可以与View交谈,即:
View <--> Presenter --> Model
来自View [*]的传入用户事件 .
- PAC是一个控制器,它与Presentation和Abstraction进行对话,但是Presentation不与Controller通信(但仍然发送Controller可能拦截的事件),即:
Presentation <-- Controller --> Abstraction
来自演示文稿(?)的传入用户事件 .
这让我觉得理解PAC与MVP相同,其中视图是被动的 . 这是对这两种模式的正确解释吗?
[*]:与MVC不同,用户事件来自Controller
附:在Stackoverflow上询问有关设计模式的一般问题是否可以?还是有更好的地方?我有一个疑问,因为这更像是一个设计而不是一个编程问题 .
1 回答
不同之处在于应用程序的结构 . 虽然MVC和其他MVC启发的模式只有单个三元组,但PAC结构是分层的 .
你得到的是
Control
实例的树,它组装了应用程序 .在每个三元组中,Control从Abstraction中获取数据并将其放置在Presentation中 .
还有HMVC模式,这是对PAC模式的一种不同的解释,其中Control(重命名为Controller)仅用于操纵Presentation(重命名为View)和Abstraction(Model层)的状态 . 在这种情况下,视图直接与模型层通信并提取它所需的内容 .
基本上,PAC是分布式MVP,而HMVC是分布式Model2 MVC .