1

简而言之:PAC(Presentation-Abstraction-Control)设计模式,仅仅是视图是被动视图的 MVP(Model-View-Presenter)模式吗?

据我所知

  • MVP 是 Presenter,与 Model 交谈。然后是 View 与 Presenter 对话,另外一种方式,Presenter 也可以与 View 对话,即:

    View <--> Presenter --> Model
    

    来自视图 [*] 的传入用户事件。

  • PAC 是一个控制器,它与 Presentation 和 Abstraction 对话,但 Presentation 不与 Controller 对话(但仍发送 Controller 可能拦截的事件),即:

    Presentation <-- Controller --> Abstraction
    

    来自 Presentation (?) 的传入用户事件。

这让我觉得理解 PAC 和 MVP 一样,视图是被动的。这是对这两种模式的正确解释吗?

[*]:与 MVC 不同,用户事件来自控制器

PS 可以问一个关于Stackoverflow设计模式的一般性问题吗?还是有更好的地方?我有一个疑问,因为这更像是一种设计而不是编程问题。

4

1 回答 1

2

不同之处在于应用程序的结构。虽然 MVC 和其他受 MVC 启发的模式只有一个三元组,但 PAC 结构是分层的。

你得到的是一个Control实例树,它组装了应用程序。

                              在此处输入图像描述

在这些三元组中的每一个中,控件从抽象中获取数据并将其放置在表示中。

还有 HMVC 模式,它对 PAC 模式的解释有点不同,其中 Control(重命名为 Controller)只应该操纵 Presentation(重命名为 View)和 Abstraction(模型层)的状态。在这种情况下,视图直接与模型层通信并提取它需要的内容。

基本上,PAC 是分布式 MVP,HMVC 是分布式 Model2 MVC。

于 2012-09-14T16:30:40.927 回答