考虑一个标准的ASP.NET Web应用程序,其中用户在表单上键入一些数字数据。在提交时,会旋转一些业务对象以对数字数据进行操作。但.Net中的服务器端文本框控件返回string类型的值。问题:页面的代码隐藏是否应该负责将字符串解析为数字数据(如果无效则抛出错误),或者业务对象是否应接受输入字符串并自行解析?
答案 0 :(得分:3)
IMO,业务对象只应接受数字类型。根据文化特定规则,可以以各种格式解析字符串。数字是数字。您不希望更改业务对象以进行本地化 - 仅接受数字将使其更容易重用。
答案 1 :(得分:1)
通常,您希望您的业务逻辑接受它使用的类型,更清晰。在进入业务逻辑之前格式化传入数据并对其进行验证是一种很好的做法,因为您实际上并未对数据进行处理,而是预先格式化数据以供Business层使用。这尤其有助于输入验证失败,您可以更少地逐步将其返回给用户。
答案 2 :(得分:0)
只应正确解析业务对象&经过验证的物品。
现在,这个解析&验证是在代码隐藏中完成的吗?很难说,因为代码隐藏真的不是一层。正确地说,代码隐藏应该只处理UI问题,解析应该在UI和UI之间的控制器层完成。商业。但是,大多数人只是将控制器粘在代码隐藏中。