可定制的Web应用程序

时间:2009-08-05 14:31:01

标签: customization spring-webflow-2 flexibility

在我的公司,我们开发预制的Web应用程序。虽然我们的应用程序在许多情况下按原样运行,但我们通常会收到复杂的自定义请求。我们在尝试以结构化方式执行此操作时遇到问题。通用功能不应受自定义的影响。目前我们正在研究Spring Web Flow,看起来它可以处理我们需要的部分内容。

例如,我们有一个在线购物,我们有一个客户的请求,在检查购物篮订单的时刻必须写入专有的日志记录系统。 使用SWF,可以使用ClientX Checkout Flow继承我们的通用结帐流程,并使用执行自定义日志写入所需的状态对其进行扩展。这种情况似乎处理得很好。这意味着我们可以保持我们的通用结账流程,并根据开放/封闭原则使用自定义功能扩展它。我们的团队及时可以为通用结账流程添加功能,这可以在不修改扩展名的情况下分发给客户端。 但是,有时客户要求我们的页面是自定义的。例如,在我们的在线购物应用程序中,客户端请求多种货币功能。在这种情况下,您需要修改视图以及流(控制器)。是否有一种技术可以让我扩展通用视图而不是修改它?到目前为止,只有两个解决方案与大多数基于模板的视图(JSP,Struts,Velocity等)似乎是

  • 为每个客户端提供特定版本的视图。这显然会导致实施爆炸
  • 根据参数(如果是multipleCurrency)使应用程序可配置,导致代码爆炸 - 必须在每个页面中检查许多配置条件

在这种情况下,最佳解决方案是什么?可能还有其他一些我无法回忆的定制案例。是否有基于组件的视图技术可以让我扩展某些基本视图,这是否有意义。 什么是可配置Web应用程序问题的典型解决方案?

1 个答案:

答案 0 :(得分:1)

每个定制点都意味着某种程度的条件性。

在可能的情况下,人们倾向于使用样式表来控制某些方面。例如,可以像这样显示货币选择器。

该货币例子的另一个想法是:1是许多人的极限情况。因此该模型提供了货币列表。视图显示选择器(如果有),固定字段(如果只有一个)。相当明确的行为 - 易于测试其他场景的可重用性。