2010-03-24 32 views
0

我熟悉前端控制器模式,其中所有事件/请求都通过一个集中式控制器进行处理。设计模式:前端控制器的对立面是什么?

但你会怎么称呼它,当你想保留一个应用程序的各个部分在表示层分开呢?我的第一个想法是“Facade”,但事实证明这是完全不同的东西。

在我的特殊情况下,我将一个应用程序从一个庞大的过程混乱转换为一个干净的MVC体系结构,但这是一个长期过程 - 我们需要尽可能分离事物以促进缓慢集成与系统的其余部分。我们的应用程序是基于Web的,使用PHP构建,因此,例如,我们有一个“index.php”和一个IndexController,一个“account.php”和一个AccountController,一个“dashboard.php”和DashboardController等等。

+1

请清除问题。表示层的哪些部分或方面要保持独立? – Gordon 2010-03-24 21:49:36

+0

我不应该说表示层。我基本上只是指客户端向服务器请求页面的时间点。使用前端控制器(使用PHP),所有请求都会转到index.php。在这种情况下,我们针对系统的每个单独组件都有不同的入口点,例如dashboard.php,account.php,report.php,signup.php(由唯一的用户界面布局定义)。每个人都有自己的控制器,并以某种方式充当自己的迷你应用程序。 这有帮助吗? – 2010-03-25 14:27:11

回答

4

POEAA称这样的一个“页面控制器”,充当控制器为网站上的每个页面的每个Web服务器上的一个模块。

+0

下面是页面控制器的另一个链接:http://msdn.microsoft.com/en-us/library/ms978764.aspx 它似乎是我正在寻找。谢谢杰森! – 2010-03-25 14:35:20

2

我很困惑,你问这里到底是什么,因为表现层已经分开 - 视图提供该功能。如果您在所有视图中都有共同的页面部分,或许您正在寻找类似View Helper pattern的内容?使用现有的PHP开发框架(如Zend_Framework或CakePHP或CodeIgniter)可以实现内置的功能。

2

AdapterFactoryStrategy一切似乎是隐藏的底层代码,但像BillyONeal,我不知道你在问什么,因为它似乎是简单地模块化的代码的工作,但我适用的方法不知道模块化模式。

+1

+1提到显式模式,而不是我的尝试。 :P – 2010-03-24 21:13:57

3

看一看在Web Presentation Patterns of PoEAA

  • Model View Controller - 拆分用户界面交互分为三个截然不同的角色。
  • Page Controller - 处理对网站上特定页面或操作的请求的对象。
  • Front Controller - 处理网站所有请求的控制器。
  • Template View - 通过在HTML页面中嵌入标记将信息呈现为HTML。
  • Transform View - 按元素处理域数据并将其转换为HTML的视图。
  • Two-Step View -Turns域数据转换成HTML中的两个步骤:首先通过形成某种逻辑的页面,然后在渲染逻辑页面转换成HTML。
  • Application Controller - 处理屏幕导航和应用程序流的集中点。
0

我甚至会走这么远称之为控制器的组成。所以你可以称之为模块化组合控制器。