0

这是关于 MVC Web 应用架构的问题,以及如何扩展它以处理组件化中等复杂的功能单元。

我有一个 MVC 风格的网络应用程序,带有面向客户的信用卡收费页面。

我被要求允许管理员也输入信用卡付款,因为有时信用卡会通过电话被接管。

该网站面向客户的信用卡收费部分目前是它自己的控制器,大约有 3 个页面和一个登录。该控制器负责:

  • 客户登录凭证认证
  • 信用卡数据收集
  • 调用图书馆进行实际收费。
  • 将结果报告给用户。

我想将卡片数据收集页面提取到某种组件中,以便我可以轻松地在应用程序的管理端重用代码。

现在我的组件仅限于带有 PHP 样式嵌入 Perl 代码的单个“视图”页面。

这是一个用 Perl 编写的简单的自定义 MVC 框架。现在,直接从框架调用控制器来服务 Web 请求。我的想法是允许从其他控制器调用控制器,这样我就可以组件化更复杂的功能。

为简单起见,我认为我更喜欢组合而不是继承,即使它需要编写一堆传递方法(动作)。作为 Perl,理论上我可以进行多重继承。

我想知道是否有其他 MVC Web 框架经验的人可以评论这种事情通常是如何完成的。

谢谢你。

4

1 回答 1

1

创建一个包含所有 cc 特定功能的组件(类?),并通过适当的方法/函数公开它。

使用组合为您的控制器(面向客户和管理员)提供 cc 组件的实例,并让两者都调用适当的方法来实现需要发生的事情。

我已经处理过很多次类似的事情,我绝对更喜欢让我的“控制器”(或任何其他直接依赖于第三方库的代码)尽可能“愚蠢”,并且像你说的那样做 - 传递任何东西这需要特定于您的应用程序的功能。这使我的代码易于测试,这也是我现在大部分设计的动力。

我希望我们谈论的是同样的事情,MVC 可以应用在很多不同的层次上,有时会让人感到困惑。

于 2010-06-07T02:02:39.027 回答