显示取决于业务规则的按钮的最佳实践

时间:2014-06-16 15:26:20

标签: java button business-rules

我正在为业务应用程序构建一个网页。该页面显示项目的信息。有几个按钮的显示取决于项目的数据,假设它取决于codeC。

我想知道建议什么来处理这些按钮的业务规则。

选项1:

Java枚举,列出有效的codeC值或公开计算是否应显示按钮的方法。

  • 优点 :快速实施
  • 缺点 :codeC值可能会更改或更新 codeC值可能会出现......这需要重建。这个重建 反正可能会因其他原因需要,但仍然......它是 不像数据库解决方案那样可扩展。

选项2: 数据库表,其中包含按钮名称,标题,允许其显示的codeC值... +一个帮助类,如果应该显示任何按钮,它将计算...

  • 优点 :可扩展性,分解。
  • 缺点 :逻辑保存在不同的地方,不如选项1快

2 个答案:

答案 0 :(得分:2)

通常我在这种情况下做的是选项2,但是使用网站缓存,以便DB读取的速度与编译的代码一样快,除了DB修改后的第一次读取。伪代码:

if (Cache["Statuses"] is null)
{
    Cache["Statuses"] = LoadStatusesFromDB();
}
return Cache["Statuses"]; // this might be a Dictionary

技巧是弄清楚每次在数据库中更新状态时如何删除缓存。这显然是针对具体应用的。

顺便说一下,我从来没有用Java做过这个,但这个概念应该与语言无关。我一直在ASP.NET中这样做,以提高检索数据的性能,这种数据与其更改频率相比经常需要。

答案 1 :(得分:0)

我认为这是一个简单的成本/收益分析。要问的真正问题是,"我多久会更新一次codeC?如果您知道将要更改它,请使用数据库。如果您只是为未来做好规划"其中可能改变了很多,做更简单的实现可能会更好,然后为未来保存更灵活的实现。

关于企业编程的好处是你有一个经理(我推测),而且经理可能会更好地决定应用程序需要的灵活性以及他们希望你如何花时间,以便你不会整天花在兔子洞里。