【发布时间】:2011-04-25 23:28:51
【问题描述】:
我正在尝试为我正在处理的项目中的业务对象提出一个可重复使用的警告片段。在保存我们的一个业务对象之前,有时我们需要警告用户潜在的影响是什么。假设我的业务对象被命名为“公司”。 Company.Delete() 将摆脱公司,而不是真正关心发生了什么。那家公司可能有 10,000 名员工,如果这么容易让他们意外失业,他们会非常失望......
所以 UI 需要一种方式来查看类似的内容:
- 删除“A 公司”将使 10,000 名工人上街。
- 删除“A公司”将留下1,000,000名股东无用的股票。
所以我可以创建一个像 Company.GetWarnings() 这样的函数,它返回一些要显示的字符串,但我想要比这更好的东西。如果 Company.GetWarnings() 返回上面的第一个警告,我希望 UI 能够知道该警告的含义。例如,如果出现第一个警告,UI 会知道它的含义并通过提供如下链接来处理这种情况:
- 删除“A公司”将使10,000名工人上街。
- 您想为这些员工找到新工作吗? '点击这里'
或者也许另一个业务对象会使用 Company.GetWarnings() 并且知道一些工人会失业,它可以自动发送遣散费。你明白了……
所以我想这个要求听起来很简单,但我有点迷失在小细节上。主要是,我可以给 GetWarnings() 什么样的结构以便它返回:
- 警告消息。
- 某种方式来识别它是什么类型的消息。
让我来回答我的问题:
有没有人有任何最佳实践、示例或建议来实施这种警告系统?我主要关心的是#2。会有大量不同类型的警告消息,所以我不想只返回说...一个字典,其中 int 是警告类型的 Id。这将很难快速管理。
感谢您提供的任何建议。
【问题讨论】:
-
除非他们需要信息,否则很难让人们阅读任何信息
-
我的感觉是,无论发生什么,您都需要列出所有可能的警告“类型”......无论如何,您都需要它来确定要完成的操作,具体取决于关于警告的类型,你不觉得吗?
-
@tsimbalar:绝对正确,但我正在尝试找到一种好方法来组织所有已定义的警告类型,而无需使用包含所有警告的巨大枚举。
标签: c# design-patterns business-objects