我正在学习使用C#和ASP.NET编写SQL Server数据库。我开发了一个系统来存储和查看金融市场上的交易。基本功能是:
还有其他实体,如经纪人,账户,策略等,支持主要的订单和交易实体。
我设计的程序有一个名为DBUtil
的数据库实用程序类,它包含数据库的所有接口。例如,为了添加新的交易,我会调用DBUtil.InsertTrade(<params>)
,添加订单DBUtil.InsertOrder(<params>)
,以更新交易DBUtil.UpdateTrade(<params>)
等。我想知道创建一个交易是否会更好贸易类,订单类,经纪人类等。这会改善程序的优雅,质量和可维护性吗?似乎添加了更多的代码而没有任何好处,好吧,我现在无法看到采用这种方法的好处。
据我所知,添加Trade
类只会创建一个额外的代码层,因为例如,在添加交易时,我必须从Trade类调用DBUtil.InsertTrade()
。
答案 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
您正在考虑的是转向域驱动设计解决方案。
答案 2 :(得分:0)
是域对象对这种情况很有用。