我没有使用hibernate,这根本不是一个有效的选择。我开发了一个基于ADO.NET的框架。该框架具有每个数据库实体的默认运算符。
例如,数据访问层具有以下默认运算符:
Insert
Update
Delete
Get
GetAll
要访问此方法,我们可以使用以下示例代码:
DataAccess.Order daoOrder;
Entity.Order entityOrder;
DataAccess.Order daoOrder;
entityOrder = new Entity.Order();
entityOrder.ID = 1090;
daoOrder = new DataAccess.Order();
daoOrder.Insert(entityOrder);
我在考虑使用静态方法,所以代码很简单:
Entity.Order entityOrder;
entityOrder = new Entity.Order();
entityOrder.ID = 1090;
DataAccess.Order.Insert(entityOrder);
假设系统有30个表和30个实体。我们需要30个DataAccess对象作为静态对象运行。 这种静态结构可以节省一些处理器周期并节省一些内存,因为垃圾收集器的成本更低。
我应该以这种方式为Business和DataAccess常用运算符使用静态方法吗? 你能谈谈这种方法的优缺点吗? (我的意思是,记忆,表现......)
答案 0 :(得分:3)
上面提到的两个选项之间的性能差异实际上是不存在的。我会考虑您可以管理的最干净,最灵活的设计,考虑您的域模型和其他业务需求,然后在您启动并运行后担心性能调整;在构建系统之前,不要试着再次猜测瓶颈。
请参阅Greg Beech的这篇文章,了解static versus instance performance ..
的分析他的结论:
在调用一个方法20亿次时,你可以通过使其保持静态来节省大约5ms,这对于每个方法调用几乎都没有节省
答案 1 :(得分:1)
如果在此类中使用静态方法,则与其交互的每个对象都将与其高度耦合。事实上,您的代码不是很容易测试的。如果我是你,我会避免使用静态方法/类以及单身人士。除非你不想试驾你的应用程序。