我需要业务对象吗?

时间:2011-05-24 09:34:31

标签: c# asp.net

我正在学习使用C#和ASP.NET编写SQL Server数据库。我开发了一个系统来存储和查看金融市场上的交易。基本功能是:

  • 添加/更新/删除订单
  • 添加/更新/删除交易(交易包含一个或多个订单)
  • 查看交易
  • 查看订单

还有其他实体,如经纪人,账户,策略等,支持主要的订单和交易实体。

我设计的程序有一个名为DBUtil的数据库实用程序类,它包含数据库的所有接口。例如,为了添加新的交易,我会调用DBUtil.InsertTrade(<params>),添加订单DBUtil.InsertOrder(<params>),以更新交易DBUtil.UpdateTrade(<params>)等。我想知道创建一个交易是否会更好贸易类,订单类,经纪人类等。这会改善程序的优雅,质量和可维护性吗?似乎添加了更多的代码而没有任何好处,好吧,我现在无法看到采用这种方法的好处。

据我所知,添加Trade类只会创建一个额外的代码层,因为例如,在添加交易时,我必须从Trade类调用DBUtil.InsertTrade()

3 个答案:

答案 0 :(得分:2)

是的,它会提高代码的可维护性,因为您的业务对象将是强类型的。除此之外,您还可以创建测试场景,而无需使用业务对象的模型连接到真实数据库。缺点之一是必须编写更多的代码,但是在将来扩展应用程序时它会对您有所帮助。

通常如果您使用Linq2Sql或EF,VS可以为您创建这些类。

编辑: 另请参阅此问题Why do we need a business logic layer?

答案 1 :(得分:1)

这实际上取决于应用程序将会发展成什么以及谁将维护它。

如果您对此感到满意,那么为什么要改变它。

我建议你阅读软件开发模式,听起来你使用的是Active Record模式,这没关系:

http://en.wikipedia.org/wiki/Active_record_pattern

您正在考虑的是转向域驱动设计解决方案。

http://en.wikipedia.org/wiki/Domain-driven_design

答案 2 :(得分:0)

是域对象对这种情况很有用。