【发布时间】:2010-12-07 13:51:35
【问题描述】:
假设我有一个巨大的输入表单,它当然代表类。我需要将此输入加载到类的实例中。这个输入显然包含(一些非常复杂的验证)检查,显然逻辑层已经包含了这些输入验证。问题是我在用 gui 做什么。
我应该以一种非常丑陋的方式在 GUI 中重写所有这些验证吗?
或者我应该在逻辑层中编写一些静态方法,在 gui 和逻辑层中使用这些方法,但仍然创建验证自身的副本(首先 gui 验证自身,然后逻辑验证什么发送给它)
或者我应该假设 gui 没问题,用 try 块包围使用逻辑层的相关代码,然后,如果抛出异常,通知用户有些事情是不正确的(不给他机会知道它是什么)
或者我应该公开异常,以何种方式向他公开参数、类和命名空间名称,他可能不会理解。
或者我应该为每个错误创建一个特殊的异常类,这样可以准确地告诉用户问题是什么,但可能会创建数百个可能的异常
或者我应该将它与一般异常分开,每个人都包含枚举描述错误的确切内容,然后捕获这些异常,并通过检查枚举告诉用户究竟是什么问题,但通过不必要地捕获使应用程序变得更重总是例外。
或者我应该(有人向我提供了这个,这不是我的想法,不要对我大喊大叫 :D)来验证逻辑层中的输入,并且只在 gui 中检查它(似乎是我绝对可怕的解决方案:D)
还有更重要的问题 - 我应该在哪里学习这些东西? 通常我的直觉很好,但我不想不必要地发明轮子..(我很确定你每天都在做这些基本的事情)。
非常感谢!
【问题讨论】:
标签: c# design-patterns oop validation conventions