- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要关于设计这样一个存储库的反馈,它会帮助我晚上休息,真的......
我无意为 Web 表单编写测试,涉及的开销太大。
我无意在明天、下个月或明年更改 ORM 或数据库,并且我需要一个地方来集中查询逻辑并避免代码重复。对吧?...
public class StuffRepository // no contract, I simply instanciate StuffRepository
{
// Scope is Per-Request, DI, no abstraction...
protected StuffDb DbContext = ObjectFactory.GetInstance<StuffDb>();
// Returns a Stuff, an Entity (EF), no abstraction
public Stuff Get(Guid id)
{
return DbContext.Stuff.FirstOrDefault(s => s.Id == id);
}
}
我使用过完全抽象的存储库、基于 Web 表单的 MVP 架构以实现单个页面的可测试性和抽象实体(DTO 和域/模型对象)。它只是永无止境,永远不够,永远不完美。
我是否违反了所有规则、原则并产生了一种称为存储库的畸变?
如果我只是将它重命名为 StuffDAL
,它会突然变得有意义吗?
谢谢
最佳答案
老实说,我对 Repositories 也有同样的感觉,最后在上个月阅读了大量相关内容之后,我真的觉得我一直在错误地做 repositories。我认为存储库实际上只是一个 DAO 或 DAL,一种抽象,可以更容易地说“坚持,把我的对象还给我”,或者“坚持,持有这个对象,直到我以后想要它”。
你知道吗,我真的不在乎它叫什么,如果它正确地抽象出我需要的东西,易于测试,完成工作,易于更改。
那么,它是不是像 Eric Evans 设想的那样在内存中存储对象的存储库?不,不是真的,但是嘿,我不会告发你的。
关于c# - 没有接口(interface)和抽象的存储库 = 畸变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6832572/
在面向 Web 的应用程序中开发优雅的 Pub-Sub 架构是一项真正的挑战。尽管有一些非常有趣的解决方案使用长轮询连接(例如 COMET)和重复超时(例如 js setTimeout)。恕我直言,A
我需要关于设计这样一个存储库的反馈,它会帮助我晚上休息,真的...... 我无意为 Web 表单编写测试,涉及的开销太大。 我无意在明天、下个月或明年更改 ORM 或数据库,并且我需要一个地方来集中查
我是一名优秀的程序员,十分优秀!