【问题标题】:benefit of properties in business objects?业务对象中的属性的好处?
【发布时间】:2011-04-02 12:40:54
【问题描述】:

在我的项目中,我使用了 4 层(用户界面、自定义类型、业务逻辑和数据访问层)。

我听说过很多关于属性的好处,但实际上我只是使用业务对象在层之间传输数据,并没有从属性中获得任何好处。

我读到业务规则、验证和检查可以使用属性来实现,但所有这些都是在前端使用验证控件和正则表达式完成的,这甚至可以提供良好的用户体验。 (在将数据发送到数据库之前,我会使用相同的验证器和正则表达式进一步进行服务器端验证。)

请指导我什么是基本力量和使用属性?为什么它们很重要以及它们如何带来好处。

【问题讨论】:

  • 您似乎一方面询问使用属性(C# 类实例属性?),另一方面询问适当的验证层。不太确定您在这里问什么或验证和属性如何相互关联。你能更新和澄清一下吗?
  • 很难回答。这很可能最终导致一场宗教讨论。但是,如果您要询问 buiness 对象中的属性是什么……好吧,那么您就不需要 em。真的!
  • 我已经编辑了我的问题,希望现在很清楚。我只想问物业的好处。谢谢

标签: c# architecture class-design


【解决方案1】:

现在,我可以想到业务对象中属性的两种可能用法。

1) 计算属性。 只读属性根据对象的其他字段/属性返回一些值。

例如:

public double AmountToPay { get { return _price*qty; }}

此逻辑应保留在业务对象中,因为明天您可能希望在金额中添加一些附加费,并将其保留在对象中会将新金额反映给所有用户。

2) 验证属性 说明创建的业务对象(或其一部分)实例是否有效的属性。

例如:

public bool IsAValidPrice { get { return _price > 0 ; } }

同样,明天企业可能会允许一些商品免费出售,然后逻辑将包含 price==0 的商品作为有效价格。

【讨论】:

  • 谢谢安比,你说的是正确的,但我觉得在实践中这不是练习。如果我们在 Web 上工作,我们必须进行客户端验证,并且使用验证控件和使用属性的正则表达式验证看起来毫无用处。这就是为什么我试图看到属性的真正用途。请指教。
  • 我同意,对于基于普通 html+javascript 的应用程序,它并不是那么直接。您可以考虑使用一些 Ajax/JQuery 来允许客户端-服务器之间的更多交互。如果我找到更好的答案,肯定会回复你。干杯!
猜你喜欢
  • 1970-01-01
  • 2018-11-15
  • 1970-01-01
  • 2011-01-10
  • 2012-11-08
  • 2010-10-31
  • 2019-04-02
  • 2011-04-25
  • 2011-08-21
相关资源
最近更新 更多