customization - 可定制的 Web 应用程序

标签 customization spring-webflow-2 flexibility

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

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

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

  • 在这种情况下,最好的解决方案是什么?可能还有一些我不记得的其他定制案例。是否有一种基于组件的 View 技术可以让我扩展某些基本 View 并且这样做有意义。
    可配置 Web 应用程序问题的典型解决方案是什么?

    最佳答案

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

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

    该货币示例的另一个想法:1 是许多的极限情况。所以模型提供了货币列表。如果有很多,则 View 显示一个选择器,如果只有一个,则显示一个固定字段。非常明确的行为 - 易于测试,可重用于其他场景。

    关于customization - 可定制的 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1233634/

    相关文章:

    android - 如何更改 Android 默认主屏幕代码并替换我的自定义主屏幕应用程序源代码?

    Powershell 错误 : Is there a way to trap "command not found" errors into a custom function?

    android - 如何更改 SearchView 默认图标?

    jsp - spring webflow 2绑定(bind): how to populate <select> with enum values

    java - 如何让webflow View 只调用一个 validator

    c# - 动态用户控制变量(嵌入式语言?)

    postgresql - PostgreSql 中的自定义错误代码类范围?

    java - Barebonds Hello World 安全示例

    html - 响应灵活的图像不起作用