gpt4 book ai didi

c# - 我应该为 DataAccess 常用运算符使用静态方法吗?

转载 作者:太空宇宙 更新时间:2023-11-03 22:26:45 27 4
gpt4 key购买 nike

我没有使用 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 通用运算符使用静态方法吗?您能谈谈这种方法的优点和缺点吗? (我的意思是,内存、性能...)

最佳答案

您上面提到的两个选项之间的性能差异几乎不存在。我会选择您可以管理的最干净、最灵活的设计,同时考虑您的域模型和其他业务需求,然后在启动和运行后担心性能调整;在构建系统之前,不要尝试猜测瓶颈。

有关 static versus instance performance 的分析,请参阅 Greg Beech 的这篇文章..

他的结论:

in calling a method two billion times you could save yourself around 5ms by making it static, which is a saving of approximately nothing for each method call

关于c# - 我应该为 DataAccess 常用运算符使用静态方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1121644/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com